Java で XML ファイルを解析するのに問題があります。ファイルの形式は次のとおりです。
<root>
<thing>
<name>Thing1</name>
<property>
<name>Property1</name>
</property>
...
</thing>
...
</root>
最終的に、このファイルを Thing オブジェクトのリストに変換したいと思います。このリストには String 名 (Thing1) があり、Property オブジェクトのリストにも名前 (Property1) があります。
このデータを取得するために xpaths を使用しようとしてきましたが、「もの」の名前だけを取得しようとすると、「プロパティ」のものを含め、「もの」に表示されるすべての名前が得られます。私のコードは次のとおりです。
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document dom = db.parse(filename);
XPath xpath = XPathFactory.newInstance().newXPath();
XPathExpression thingExpr = xpath.compile("//thing");
NodeList things = (NodeList)thingExpr.evaluate(dom, XPathConstants.NODESET);
for(int count = 0; count < things.getLength(); count++)
{
Element thing = (Element)things.item(count);
XPathExpression nameExpr = xpath.compile(".//name/text()");
NodeList name = (NodeList) nameExpr.evaluate(thing, XPathConstants.NODESET);
for(int i = 0; i < name.getLength(); i++)
{
System.out.println(name.item(i).getNodeValue());
}
}
誰でも助けることができますか?前もって感謝します!