我正在使用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));
}
}
}
Run Code Online (Sandbox Code Playgroud)
问题是,我的xml文件非常大(> 30000行),上面的代码需要太多时间来检查节点是否属于ELEMENT_NODE类型.我看到如果程序在到达最后一个ELEMENT_NODE节点后停止,则执行时间会非常短.
有没有办法获得所有类型ELEMENT_NODE只有的子节点?
例如: NodeList list = node.getElementChildNodes();
谢谢你的帮助!
node.getElementsByTagName("*")
Run Code Online (Sandbox Code Playgroud)
From JavaDoc:以文档顺序返回具有给定标记名称的所有后代元素的NodeList.名称 - 要匹配的标记的名称.特殊值"*"匹配所有标签.