我想找到匹配id屬性的元素的值,我只有ref - 帶#的位,錨點。Xpath:從id屬性的匹配找到一個元素值到錨點
我找partyId的價值:
< party id="partyA" >
<partyId>THEID</partyId>
,但到那裏我只有從以下
<MyData>
< MyReference href="#partyA" />
地帶的HREF#號不好看我。
任何提示?
我想找到匹配id屬性的元素的值,我只有ref - 帶#的位,錨點。Xpath:從id屬性的匹配找到一個元素值到錨點
我找partyId的價值:
< party id="partyA" >
<partyId>THEID</partyId>
,但到那裏我只有從以下
<MyData>
< MyReference href="#partyA" />
地帶的HREF#號不好看我。
任何提示?
由於您尚未提供完整的XML文檔,因此我必須使用//
- 我強烈建議您避免這種做法。
假設
$vDataRef
被定義爲
//MyData/MyReference/@href
及其字符串值是"#partyA"
,然後一個可能的XPath表達式,其選擇想要的節點是:
//party[@id=substring($vDataRef,2)]
如果XML文檔具有其中的party
的id
屬性被定義爲ID
類型的DTD,那麼它是更方便,更有效的是使用標準的XPath函數id()
:
id(substring($vDataRef,2))
假設你有你的ID作爲已經是一個變量(可以說$身份識別碼),然後嘗試使用:
//party[contains($myId, @id)]
的contains() function將期待看到每個匹配節點partyId attibut是否是在您在傳德值上
或者(因爲這可能被視爲「舉步維艱」),你可以嘗試:
//party[@id=substring($myId, 2, 1 div 0)]
substring() function應該更精確一點。
可以使用p/2'fn:substring()',你不需要'INF'表達式。 – 2010-09-22 18:31:32
好問題(+1)。看到我的答案有兩種可能的解決方案:) – 2010-09-21 13:44:19