我在xml文档中的所有节点上使用迭代:
DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory
.newInstance();
DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();
Document document = docBuilder.parse(new File(path)); //path is path to xml document
NodeList nodeList = document.getElementsByTagName("*");
for (int i = 0; i < nodeList.getLength(); i++) {
Node node = nodeList.item(i);
if (node.getNodeType() == Node.ELEMENT_NODE) {
// do something with the current element
System.out.println(node.getNodeName() + ": " + node.getTextContent());
}
}
来源:Java: Most efficient method to iterate over all elements in a org.w3c.dom.Document?
我想要每个节点的打印文本。
当我致电node.getTextContent()
时,它会返回此节点中所有孩子的字符串。
示例:
<chanel>
<car>opel</car>
<color>orange</color>
</chanel>
输出:
chanel: opel
orange
car: opel
color: orange
但..项目香奈儿没有文字欧宝和橙色?如何只在实际节点中打印文本?
喜欢这样:
chanel:null 汽车:欧宝 颜色:橙色
感谢您的帮助!
答案 0 :(得分:0)
1 =&gt;带孩子们
the_node.getChildNodes()
2然后测试Text
类型3然后getTextContent()
另一个解决方案:使用XPath