【发布时间】:2016-09-23 03:33:28
【问题描述】:
我有一个 java 代码,如下所示。根据我的理解,它应该在给定的test.xml文件中显示父节点<parent>的子节点数。
try {
DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
Document doc = docBuilder.parse(new File("./test.xml"));
System.out.println(doc.getElementsByTagName("parent").item(0).getChildNodes().getLength());
} catch(Exception e) {
e.printStackTrace();
}
这是我的test.xml 文件。
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<parent>
<sid>hello</sid>
</parent>
在此 XML 中,父节点parent 的子节点数为 1(即<sid>hello</sid>)。但是上面的 sn-p 输出为 3。有人可以帮我弄清楚这里发生了什么吗?我是 java 新手,感谢您的帮助。
【问题讨论】:
-
检查每个节点的类型。并非所有子节点都是元素节点。我想你会发现只有一个元素类型的子节点。
-
为什么它输出 3 而不是 1 ? sn-p 是否计算所有节点,包括
parent?