我正在使用 java DOM 解析一个 xml 文档,我需要获取每个节点来做某事。
我有这个代码:
public void analyze_file(Node node){
if(node.getNodeType() != Node.DOCUMENT_NODE){
//do something
}
NodeList list = node.getChildNodes();
for(int i=0; i<list.getLength(); i++){
if(list.item(i).getNodeType() == Node.ELEMENT_NODE){
analyze_file(list.item(i));
}
}
}
问题是,我的 xml 文件非常大(> 30000 行),上面的代码需要太多时间来检查节点是否属于 ELEMENT_NODE
类型与否。我看到如果程序在到达最后一个 ELEMENT_NODE
节点后停止,执行时间会非常短。
有什么方法可以获取所有类型为 ELEMENT_NODE
的子节点吗?
例如:NodeList list = node.getElementChildNodes();
感谢您的帮助!
最佳答案
node.getElementsByTagName("*")
来自 JavaDoc:按文档顺序返回具有给定标签名称的所有后代元素的节点列表。名称 - 要匹配的标签的名称。特殊值“*”匹配所有标签。
关于java - 如何仅获取 ELEMENT_NODE 类型的子节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20089661/