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