簡體   English   中英

xpathGetString總是返回空字符串

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM