私は以下のXMLを持っています。 topping id = '5002'
の場合は、item id
とbatters
を検索したいと思います。親切に助けてください。XPATHを使用してXMLを解析するには
<?xml version="1.0" encoding="utf-8"?>
<items>
<item id="0001" type="donut">
<name>Cake</name>
<ppu>0.55</ppu>
<batters>
<batter id="1001">Regular</batter>
<batter id="1002">Chocolate</batter>
<batter id="1003">Blueberry</batter>
<batter id="1003">Devil's Food</batter>
</batters>
<topping id="5001">None</topping>
<topping id="5002">Glazed</topping>
<topping id="5005">Sugar</topping>
<topping id="5007">Powdered Sugar</topping>
<topping id="5006">Chocolate with Sprinkles</topping>
<topping id="5003">Chocolate</topping>
<topping id="5004">Maple</topping>
</item>
</items>
これは私のコードですが、アイテムIDとバーターを取得できません。
String expression1 = "/items/item/topping[@id='5002']";
NodeList nodeList1 = (NodeList) xPath.compile(expression1).evaluate(doc, XPathConstants.NODESET);
for (int i = 0; i < nodeList1.getLength(); i++) {
Node nNode = nodeList1.item(i);
System.out.println("\nCount :"+count);
if (nNode.getNodeType() == Node.ELEMENT_NODE)
{
Element eElement = (Element) nNode;
System.out.println("Item ID : "+ eElement.getAttribute("id"));
//System.out.println("Item Name : "+ eElement.getElementsByTagName("name").item(0).getTextContent());
//System.out.println("Item PPU : "+ eElement.getElementsByTagName("ppu").item(0).getTextContent());
//System.out.println("Item Batters : "+ eElement.getElementsByTagName("batters").item(0).getTextContent());
System.out.println("Item Topping : "+ eElement.getTextContent());
count++;
}
}
あなたの要件が明確ではありません。 'item id = 0001'と、あなたのxpathの結果にあるすべての' batter'要素を欲しいですか? – SomeDude