簡體   English   中英

XQuery無法使用名稱空間

[英]Xquery not working with namespaces

我是xQuery的初學者,並且試圖在XML文件中列出根節點的所有子類。 但是,XML文檔的根節點內部定義了名稱空間,這意味着xQuery在引用時不起作用。

對於doc(“ / db / books.xml”)/ bookstore / book中的$ x,返回$ x不會返回在bookstore標記中定義了名稱空間的任何內容

當我從標記中刪除名稱空間時,查詢工作正常。

在不刪除XML文件中的命名空間的情況下,有什么方法可以解決此問題?

編輯:我最終將在數百個XML文件中執行這些查詢,這些XML文件中的命名空間相差很大

先感謝您

您在查詢中聲明了名稱空間嗎? 喜歡 :

declare namespace ns = "http://example.org";

然后在查詢中使用它:

for $x in doc("/db/books.xml")/ns:bookstore/ns:book return $x

如果您甚至比較懶惰(並且可以確保避免像<a:foo /> vs <b:foo />這樣的名稱沖突),您甚至可能想要使用:

for $x in doc("/db/books.xml")/*:bookstore/*:book return $x ,其中*將匹配任何給定的名稱空間(甚至是“ no-namespace”)

暫無
暫無

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

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