我正在使用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文件非常大(&gt; 30000行),上面的代码需要太多时间来检查节点是ELEMENT_NODE
类型还是不。我看到如果程序在到达最后一个ELEMENT_NODE
节点后停止,则执行时间会非常短。
有没有办法让所有类型都只有ELEMENT_NODE
的子节点?
例如:NodeList list = node.getElementChildNodes();
感谢您的帮助!
答案 0 :(得分:6)
node.getElementsByTagName("*")
From JavaDoc:以文档顺序返回具有给定标记名称的所有后代元素的NodeList。名称 - 要匹配的标记的名称。特殊值“*”匹配所有标签。