Xml XQuery:如何跨元素访问内部元素

Xml XQuery:如何跨元素访问内部元素,xml,xquery,Xml,Xquery,我们是否可以跨越标签,只使用一个来获取中的所有元素?我认为文档(“test.xml”)//书籍可以工作。你可以在这里阅读: 正如另一个答案中所指出的,您可以使用/选择book元素,该元素位于bookstore的任何深度 或者,如果需要XQuery严格处理发布的2种可能的结构,可以使用union运算符,如下所示: for $x in doc("test.xml")/xs:bookstore/book return $x for $x in doc("test.xml")/xs:bookstore

我们是否可以跨越
标签,只使用一个
来获取
中的所有
元素?

我认为
文档(“test.xml”)//书籍
可以工作。你可以在这里阅读:

正如另一个答案中所指出的,您可以使用
/
选择
book
元素,该元素位于
bookstore
的任何深度

或者,如果需要XQuery严格处理发布的2种可能的结构,可以使用union运算符,如下所示:

for $x in doc("test.xml")/xs:bookstore/book
return $x

for $x in doc("test.xml")/xs:bookstore/fortest/book
return $x

首先,请注意,EEE中$x的
返回$x
可以简化为
EEE

其次,我不知道代码中的“xs:”前缀是用来做什么的

因此(改编并简化@har07的答案)你可以写:

for $x in doc("test.xml")/xs:bookstore/(self::xs:bookstore|fortest)/book
return $x
for $x in doc("test.xml")/xs:bookstore/(self::xs:bookstore|fortest)/book
return $x
doc("test.xml")/bookstore/(.|fortest)/book