StAX通过XMLStreamReader和XMLStreamWriter在START_ELEMENT事件中读写XML属性;读取用getAttributeValue(namespaceURI, localName),写入需在writeStartElement()后、writeEndElement()前调用writeAttribute()。

StAX(Streaming API for XML)在Java中读取和写入XML属性非常直接,核心是通过XMLStreamReader和XMLStreamWriter操作属性(attribute),而不是把属性当元素处理。
读取XML元素的属性
使用XMLStreamReader时,属性只存在于START_ELEMENT事件中。调用getAttributeCount()获取数量,再用getAttributeValue(namespaceURI, localName)或getAttributeValue(index)读取值。
常见做法:
- 先判断事件类型是否为
XMLStreamConstants.START_ELEMENT - 用
getAttributeCount()确认是否有属性(避免越界) - 推荐用命名空间+本地名方式读取,更安全;若无命名空间,
namespaceURI传空字符串""
例如,对<book id="101" category="fiction"></book>,可这样取值:
立即学习“Java免费学习笔记(深入)”;
if (event == XMLStreamConstants.START_ELEMENT) {
String id = reader.getAttributeValue("", "id"); // "101"
String cat = reader.getAttributeValue("", "category"); // "fiction"
}登录后复制
写入XML元素时添加属性
用XMLStreamWriter写元素前,调用writeStartElement()开启标签,然后连续调用writeAttribute()添加属性,最后writeEndElement()闭合。
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
还木有评论哦,快来抢沙发吧~