【发布时间】:2020-09-19 22:09:27
【问题描述】:
我使用 Stax 获取我的 xml 文件(大小 90 MB)的 nodeName 和 nodeValue:
<?xml version="1.0" encoding="UTF-8"?>
<name1>
<type>
<coord>67</coord>
<umc>57657</umc>
</type>
<lang>
<eng>989</eng>
<spa>123</spa>
</lang>
</name1>
<name2>
<type>
<coord>534</coord>
<umc>654654</umc>
</type>
<lang>
<eng>354</eng>
<spa>2424</spa>
</lang>
</name2>
<name3>
<type>
<coord>23432</coord>
<umc>14324</umc>
</type>
<lang>
<eng>141</eng>
<spa>142</spa>
</lang>
</name3>
我可以获取 localName 但不能获取子节点...如果我想获取与 'spa' 不同的所有子节点的值,我该如何处理才能获取该值?
Java:
XMLStreamReader dataXML = factory.createXMLStreamReader(new FileReader(path));
while (dataXML.hasNext())
{
int type = dataXML.next();
switch(type)
{
case XMLStreamReader.START_ELEMENT:
System.out.println(dataXML.getLocalName());
break;
case XMLStreamReader.CHARACTERS:
System.out.println(dataXML.getText());
break;
}
}
【问题讨论】:
-
我不知道它是否与您的问题有关,但在示例 XML 中您提供的
<lang>结束标记是错误的。应该是</lang> -
@zolv 这与我的问题无关,但谢谢!我刚刚编辑了
-
我刚刚检查了您的代码,在日志中我可以清楚地看到每个记录的标签 - 完全符合预期。