JAVA忽略已注释的XML标签

3

在解析XML文档时,我得到一个被注释掉的代码节点(从一开始就是个坏主意),我想知道何时有注释掉的节点/块而不去解析它。

以下是解析XML元素的代码:

private static boolean updateXML(File file, Document doc, NodeList nodeList) 
{
    if(nodeList==null)
        return false;

    boolean somethingChanged = false;
    for(int i=0;i<nodeList.getLength();i++)
    {
        if(nodeList.item(i).hasChildNodes())
        {
            somethingChanged |= updateXML(file, doc, nodeList.item(i).getChildNodes());
        }
        else
        { ... }
    }
}

当我调试它时,我可以看到被注释的部分作为一个完整节点被呈现出来。

我该如何忽略这些注释?


1
检查您获取的Node类型。如果是Comment,请忽略它。 - RealSkeptic
2个回答

6
请使用以下内容:
Node node = nodeList.item(i);
if(node.getNodeType() == Node.COMMENT_NODE) {
    continue;
} else {
    //do something
}

谢谢!这正是我在寻找的。 - Itzik984

3
使用 DocumentBuilderFactory 可以设置完全忽略文件中的注释。
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
dbFactory.setIgnoringComments(true);

现在解析任何文件:
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(filePath);

该文件将不包含任何注释。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接