簡體   English   中英

如何在Xquery中使用動態路徑表達式

[英]How to use a dynamic path expression in Xquery

我對xquery還是相當陌生,所以請耐心等待,因為我會盡力問這個問題。

當我使用以下語句(選擇一個序列)時,它可以正常工作:

let $parts := doc("soap.xml")/soapenv:Envelope/soapenv:Body/ns0:PartDetails/ns0:partName

這將所有元素(作為序列)加載到$ parts變量中,就像我想要的那樣...

我想動態分配“ /ns0:partName ”。 我遍歷所有Qname函數,以為它們會以某種方式提供幫助,但沒有運氣。 經過2天的奮斗,我希望你們中的一個能為我指明正確的方向。

在路徑表達式中,可以用*替換element並添加謂詞以過濾結果,這些謂詞可能包含動態變量。 例如 :

*[local-name()=$someName and namespace-uri()=$someURI]

作為vincent答案的簡化,您只需檢查xs:QName是否與節點的node-name()匹配

let $elementName = QName("urn:namespace", "PartDetails")
...
let $parts := doc("soap.xml")/soapenv:Envelope/soapenv:Body/*[node-name() = $elementName]/ns0:PartName

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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