如何仅使用ELEMENT_NODE类型获取子节点

chu*_*ghd 5 java xml dom

我正在使用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();

谢谢你的帮助!

pas*_*701 6

node.getElementsByTagName("*")
Run Code Online (Sandbox Code Playgroud)

From JavaDoc:以文档顺序返回具有给定标记名称的所有后代元素的NodeList.名称 - 要匹配的标记的名称.特殊值"*"匹配所有标签.