我正在寫一個java程序來搜索文本並返回其節點信息。xpath獲取節點信息的xpath
- 該程序應搜索文檔中的任何位置的文本。
- 返回5個預定義的節點和節點值。
示例XML文件: -
<project xmlns="https://example.hoom/go/bing">
<name>purchaseOrder </name>
<property name="included" type="hidden">true</property>
<locales>
<locale>en</locale>
<locale>hi</locale>
</locales>
<defaultLocale>en</defaultLocale>
<gamespace>
<name locale="en">hambook</name>
<name locale="de">hambook</name>
<lastChanged>2014-03-05T18:47:30</lastChanged>
<lastChangedBy>userx</lastChangedBy>
<property name="included" type="hidden">true</property>
<gamespace>
<name locale="en">DbBook</name>
<name locale="zw">DbBook</name>
<hecrotSubject status="valid">
<name locale="en">hexValue</name>
<name locale="zw">hexValue</name>
<hecrotItem>
<name locale="en">hireValue</name>
<name locale="zw">hireValue</name>
<hello>searchTerm</hello>
</hecrotItem>
</hecrotSubject>
</gamespace>
</gamespace>
<gamespace>
<name locale="en">Names</name>
<lastChanged>2016-01-12T12:42:46</lastChanged>
<gamespace>
<name locale="en">Database Layer</name>
<name locale="zw">Database Layer</name>
<hecrotSubject status="valid">
<name locale="en">qsxyz</name>
<hecrotItem>
<name locale="en">myName</name>
<hello>...Hi there..</hello>
</hecrotItem>
</hecrotSubject>
</gamespace>
</gamespace>
</project>
我現在的XPath是: -
"//*[local-name()='gamespace']/*[local-name()='hecrotSubject']/*[local-name()='hecrotItem'][contains(., '"& searchTerm &"')]/ancestor-or-self::*/*[local-name()='name' and @locale='en']"
這是隻給使用xpath.compile().evaluate()
根標籤。 儘管我需要的結果是
如果五個預定義節點包含搜索文本(本示例xml中的searchTerm),則其名稱值爲。
樣品的結果應該是: -
項目 - purchaseOrder的
遊戲空間 - hambook
遊戲空間 - DbBook
hecrotSubject - hexValue
hecrotItem - hireValue
編輯
我使用下面的語句在Java中: -
String expression = Xpath;
Strings vals = xPath.compile(expression).evaluate(xmlDocument);
System.out.println(vals);
你已經做了什麼?你卡在哪裏? –
我在java中使用followin語句: - String expression = Xpath; 字符串vals = xPath.compile(表達式).evaluate(xmlDocument); System.out。的println(瓦爾斯); – user2816085
你有無效的xpath查詢(通過xmlspy檢查),獲取名稱'''/項目/遊戲空間/名稱'',獲得hecroSubject:'''/ project/gamespace/gamespace/hecrotSubject''' –