![](/img/trans.png)
[英]HQL - Querying by email or string with dot('.') is always returning empty set
[英]xpathGetString always returning empty string
我正在嘗試使用xpathGetString從CustomXmlPart讀取屬性
String abcd = lc_CustomXmlPart.xpathGetString( "/Contract/Currency[1]/@Code", "" );
System.out.println( abcd );
但是它總是返回空字符串。
Xml看起來像這樣:
<Contract xmlns="http://abc.123.cz" TypeCode="HO" IssueDate="2017-02-11">
<Currency Code="EUR" Name="Default" PrintCode="€"></Currency>
</Contract>
有人可以告訴我我在做什么錯嗎?
XML定義了默認名稱空間( xmlns
),並且您嘗試訪問其節點而不指定該名稱空間。
您可以更改XPath來訪問任何名稱空間的節點:
在XPath 1.0中: /*[local-name()='Contract']/*[local-name()='Currency'][1]/@Code
在XPath 2.0中: /*:Contract/*:Currency/@Code
但是最好指定它:
String abcd = lc_CustomXmlPart.xpathGetString( "/abc:Contract/abc:Currency[1]/@Code", "xmlns:abc=\"http://abc.123.cz\"" );
我不確定確切的語法,請查看您的API文檔; 我確定的是,有一種方法可以指定前綴映射,您可以在XPath中使用它。
請注意,可能有一種方法可以為XPath查詢指定默認名稱空間,這將導致相同的結果(選擇特定名稱空間的節點),而無需修改XPath。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.