私のXMLファイルXPathで何も選択しないのはなぜですか?
<classifications>
<classification sequence="1">
<classification-scheme office="" scheme="CS" />
<section>G</section>
<class>01</class>
<subclass>R</subclass>
<main-group>33</main-group>
<subgroup>365</subgroup>
<classification-value>I</classification-value>
</classification>
<classification sequence="2">
<classification-scheme office="" scheme="CS" />
<section>G</section>
<class>01</class>
<subclass>R</subclass>
<main-group>33</main-group>
<subgroup>3415</subgroup>
<classification-value>A</classification-value>
</classification>
<classification sequence="1">
<classification-scheme office="US" scheme="UC" />
<classification-symbol>324/300</classification-symbol>
</classification>
<classification sequence="2">
<classification-scheme office="US" scheme="UC" />
<classification-symbol>324/307</classification-symbol>
</classification>
</classifications>
私は、私は、XPath、
以下NodeList usClassification = (NodeList)xPath.compile("//classifications//classification//classification-scheme[@office=\"US\"]//classification-symbol//text()").evaluate(xmlDocument, XPathConstants.NODESET);
と試みた条件office="US"
と一緒に以下の条件 必要なすべてのclassification-symbol
要素の値と値を解析したいが、空の結果セットが得られました。
System.out.println(usClassification.getLength()); //its becomes zero
このように "//"を無差別に使用しないようにしてください。これは怠惰な習慣です。同じパスで4回実行すると、特にソースドキュメントが大きい場合は、パフォーマンスが著しく低下する可能性があります。 –
特に、 '/'(子孫を選択する)と '/'(直接の子を選択する)の機能上の違いは、あなたのXMLとは関係がないからです。 – kjhughes