我一直在尝试读取这个xml并获取id,active和MAIN_ID的值并将其存储到java中的字符串值,因为我需要进一步处理每个值。但我可以读取Node文档,但是当我们循环文档时,我不确定如何获取id,active和MAIN_ID的值。有人可以给我解析这个xml的想法和最好的方法。
<add>
<document>
<field name='id'>Summer id</field>
<field name='active' update='add'>yes</field>
<field name='MAIN_ID' update='add'>34242</field>
</doc>
<document>
<field name='id'>winter id</field>
<field name='active' update='add'>yes</field>
<field name='MAIN_ID' update='add'>5354</field>
</document>
<doc>
现在这是我的代码。但是我不确定根据字段来检索子节点。
DocumentBuilder builder = factory.newDocumentBuilder();
// create a new document from input stream and an empty systemId
Document doc = builder.parse(url);
// get the first element
Element element = doc.getDocumentElement();
System.out.println("element" + element);
// get all child nodes
NodeList nodes = element.getChildNodes();
// print the text content of each child
for (int i = 0; i < nodes.getLength(); i++) {
Node node = nodes.item(i);
if (node instanceof Element) {
//need to know how to parse the child elements for above code
}
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
答案 0 :(得分:0)
首先考虑不使用XML中的属性来指定节点含义,所以改为使用类似
的内容...
<document>
<id>winter id</id>
<active update='add'>yes</active>
<MAIN_ID update='add'>5354</MAIN_ID>
</document>
...
如果您的文档很大,请考虑学习和使用SAX解析器。但是,如果要使用DOM,请查看org.w3c.dom.Element接口。关于如何使用DOM解析HTML,有很多关于SO的分步帖,如this one。但是对于名为&#34; document&#34;的元素,您需要getElementsByTagName,然后使用相同的方法从该元素中提取单个字段以获取id,active等。