我试图使用平面 DOM 解析器在 java 中解析 collada(.dae) 文件。当我尝试获取价值时,它返回 null。我尝试了其他讨论的答案和建议,但没有成功。我使用的代码如下。
for(int k1=0;k1<meshlist.getLength();k1++) {
Element geometryItr1 = (Element)geometrylist.item(k);
NodeList trianglelist = geometryItr1.getElementsByTagName("triangles");
//System.out.println("Triangles length is " + trianglelist.getLength());
for(int o=0;o<trianglelist.getLength();o++) {
Element trichildnodes = (Element) trianglelist.item(o);
NodeList inputs = trichildnodes.getElementsByTagName("input");
NodeList p = trichildnodes.getElementsByTagName("p");
Element ppp = (Element) p.item(0);
System.out.println("Node Value " + ppp.getNodeValue());
System.out.println(inputs.getLength() + "Input length");
for(int in=0;in<inputs.getLength();in++) {
Element inn = (Element) inputs.item(in);
System.out.println(inn.getAttribute("semantic") + " " + inn.getAttribute("source") + " Attributes");
}
//System.out.println(p.getLength() + " P's length" );
//System.out.println("P's content " + ppp.getFirstChild().getNodeValue());
}
}
XML 非常大,我发布了一个我试图解析的部分。
<mesh>
<source> </source>
<source> </source>
<source> </source>
<triangles>
<input />
<input />
<input />
<p> 24 262 2 72 72 72 72 2222 8198219 </p>
<triangles>
<triangles>
<input />
<input />
<input />
<p> 24 262 2 72 72 72 72 2222 8198219 </p>
<triangles>
<triangles>
<input />
<input />
<input />
<p> 24 262 2 72 72 72 72 2222 8198219 </p>
<triangles>
<triangles>
<input />
<input />
<input />
<p> 24 262 2 72 72 72 72 2222 8198219 </p>
<triangles>
</mesh>
我试图获得<p>
. 除了获得 p 的值外,一切正常。但是当我调试时,我可以看到这些值,它与第一个孩子相关联。我什至尝试使用 firstChild。我完全迷失了试图找出解决方案的解析。请有人帮我找到关于如何获得 p 值的解决方案?
当我改用 getTextContent 时,我得到如下输出:
NodeValue null
NodeValue 24 262 2 72 72 72 72 2222 8198219
NodeValue null
两个标签的输出为空白。