我正在制作一个Android应用程序,对XML文件进行DOM解析。我有一个像这样的XML文件:
<?xml version="1.0" encoding="utf-8"?>
<family>
<grandparent>
<parent1>
<child1>Foo</child1>
<child2>Bar</child2>
</parent1>
<parent2>
<child1>Raz</child1>
<child2>Mataz</child2>
</parent2>
</grandparent>
</family>
如果我对它运行一个DOM解析器,就像这样:
try {
DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document doc = builder.parse(input);
doc.getDocumentElement().normalize(); //added in since the edit
NodeList nodd = doc.getElementsByTagName("grandparent");
for (int x = 0; x < nodd.getLength(); x++){
Node node = nodd.item(x);
NodeList nodes = node.getChildNodes();
for(int y = 0; y < nodes.getLength(); y++){
Node n = nodes.item(y);
System.out.println(n.getNodeName());
}
}
}
我的应用程序打印出以下内容
07-20 18:24:28.395: INFO/System.out(491): #text
07-20 18:24:28.395: INFO/System.out(491): parent1
07-20 18:24:28.395: INFO/System.out(491): #text
07-20 18:24:28.395: INFO/System.out(491): parent2
07-20 18:24:28.395: INFO/System.out(491): #text
我的问题是,这些 #text 是什么,更重要的是,我该如何去掉它们?
编辑:现在我知道它们是什么了,我尝试对其进行规范化。 我已更新代码以反映更改,但结果相同。
getNextSibling()
,但我能否保证它总是有一个#text
作为第一个子节点? - Otra