bet*_*oys 6 xpath xquery marklogic
使用MarkLogic但这可能是一个通用的XQuery问题.
我有:
<library>
<books>
<book title="whatever">
<publisher>Random</publisher>
....more children
</book>
<book title="another">
<publisher>Simon</publisher>
....more children
</book>
...
</books>
</library>
Run Code Online (Sandbox Code Playgroud)
我想要返回所有[book]元素及其title属性,但我不想要任何书籍的孩子,例如[publisher].我如何以正统和高效的方式实现这一目标?
相关问题:有时我可能想要得到一些孩子,而不是其他孩子,例如获得所有书籍元素和他们的出版商子元素,但没有其他孩子.
谢谢.
XQuery(实际上是一个 XPath,它是 XQuery 的一个子集)在/library/books/book
技术上可以满足您的需求——它返回一组 book 元素,而不是其他任何东西。一些 API 将返回对 book 元素的引用,并让您决定要对它们做什么,例如显示它们的标题。然而,许多工具和 API 会将这些书籍元素与以书籍为根的整个子树一起复制,并且在数据库的情况下,这通常是将通过网络从服务器传输到客户端的结果。在这种情况下,您不想选择现有的 book 元素,而是想构建一个包含 book 元素中信息子集的新文档。为此,您可以在 XQuery 中使用元素构造函数:
for $b in /library/books/book
return <book title="{$b/@title}"/>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
283 次 |
最近记录: |