【问题标题】:JAVA Ignore commented out xml tagsJAVA Ignore 注释掉 xml 标签
【发布时间】:2015-05-12 11:09:33
【问题描述】:

当我在解析 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
        { ... }
    }
}

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

如何忽略这些 cmets?

【问题讨论】:

  • 检查你得到的Node的类型。如果是Comment,请忽略。

标签: java xml dom xml-parsing


【解决方案1】:

使用这个:

Node node = nodeList.item(i);
if(node.getNodeType() == Node.COMMENT_NODE) {
    continue;
} else {
    //do something
}

【讨论】:

  • 谢谢!正是我想要的
【解决方案2】:

使用DocumentBuilderFactory可以设置完全忽略文件中的cmets。

DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
dbFactory.setIgnoringComments(true);

现在解析任何文件:

DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(filePath);

文档不会包含任何 cmets。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-03
    • 2011-02-14
    • 2014-01-08
    • 2021-10-22
    • 2013-03-25
    • 1970-01-01
    • 2020-11-28
    • 1970-01-01
    相关资源
    最近更新 更多