虽然我正在解析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
{ ... }
}
}
当我调试它时,我可以看到注释掉的部分被提升为一个完整的节点。
我如何忽略这些评论?
答案 0 :(得分:4)
使用此:
Node node = nodeList.item(i);
if(node.getNodeType() == Node.COMMENT_NODE) {
continue;
} else {
//do something
}
答案 1 :(得分:0)
使用DocumentBuilderFactory
,您可以设置为完全忽略文件中的注释。
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
dbFactory.setIgnoringComments(true);
现在解析任何文件:
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(filePath);
该文件不包含任何评论。