<data xmlns:fsd="abc.org" xmlns:xlink="http://www.w3.org/1999/xlink">
<meta name="elapsed-time" value="46" />
<org-family>
<family-member id="5">
<publication-reference>
<document-id document-id-type="docdb">
<country>US</country>
<doc-number>3056228</doc-number>
<date>20160817</date>
</document-id>
</publication-reference>
</family-member>
<family-member id="2">
<publication-reference>
<document-id document-id-type="docdb">
<country>US</country>
<doc-number>2013315173</doc-number>
<date>20150430</date>
</document-id>
</publication-reference>
</family-member>
</org-family>
</data>
でのNodeListを、以下の私のJavaコードXPathのJavaの使用してコンパイル - 私は国や日付のノードの値を抽出したい上記のXMLから特定のノード値
NodeList familyMembers = (NodeList) xPath.compile("//family-member//publication-reference//document-id[@document-id-type=\"docdb\"]//text()").evaluate(xmlDocument,XPathConstants.NODESET);
ArrayList mainFamily = new ArrayList();
for (int i = 0; i < familyMembers.getLength(); i++) {
mainFamily.add(familyMembers.item(i).getNodeValue());
}
が、そのエキス3つのすべてのノード値です(country, doc-number and date
)、私は2つのノード値(country and date
)だけを必要とし、forループではどのように要求されたノード値を渡すべきですか?
これは有効なXMLではありません - ''と ''は閉じておらず、ルート要素はありません。 –
CiaPan
パス式の '//'と '/'演算子の違いを知っていますか? [XML Path Language(XPath) - 2ロケーションパス - 2.5短縮構文](http://www.w3.org/TR/xpath/#path-abbrev)を参照してください。 – CiaPan
@CiaPan:XML文書全体を貼り付けているわけではありませんが、これは特定のセクションです – Prabu