gpt4 book ai didi

java - 如何使用 StAX XML 解析器捕获属性事件?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:11:00 26 4
gpt4 key购买 nike

我尝试使用 StAX XML 解析器解析 XML 文件。它给我 START_ELEMENTEND_DOCUMENT 事件,但没有 ATTRIBUTE 事件。如何使用 StAX 解析器接收 ATTRIBUTE 事件?

我的 XML:

    <?xml version="1.0" encoding="utf-8"?>
<posts>
<row name="Jonas"/>
<row name="John"/>
</posts>

我的 StAX XML 解析器:

public class XMLParser {

public void parseFile(String filename) {
XMLInputFactory2 xmlif = (XMLInputFactory2) XMLInputFactory2.newInstance();
xmlif.setProperty(XMLInputFactory.IS_REPLACING_ENTITY_REFERENCES, Boolean.FALSE);
xmlif.setProperty(XMLInputFactory.IS_SUPPORTING_EXTERNAL_ENTITIES, Boolean.FALSE);
xmlif.setProperty(XMLInputFactory.IS_COALESCING, Boolean.FALSE);
xmlif.configureForSpeed();

XMLStreamReader2 xmlr = (XMLStreamReader2)
xmlif.createXMLStreamReader(new FileInputStream(filename));

int eventType;
while(xmlr.hasNext()) {
eventType = xmlr.next();
switch(eventType) {
case XMLStreamConstants.START_ELEMENT:
if(xmlr.getName().toString().equals("row")) {
System.out.println("row");
}
break;
case XMLStreamConstants.ATTRIBUTE:
System.out.println("Attribute");
break;
case XMLStreamConstants.END_DOCUMENT:
System.out.println("END");
xmlr.close();
break;
}
}

}

public static void main(String[] args) {
XMLParser p = new XMLParser();
String filename = "data/test.xml";
p.parseFile(filename);
}

}

最佳答案

您可以在START_ELEMENT 状态下获取属性。请参阅 XMLStreamReader 上的 getAttribute* 方法:

关于java - 如何使用 StAX XML 解析器捕获属性事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7435674/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com