プレーン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
2つのタグの出力は空白です。