Xml 如何在xquery中将元素节点转换为文档
我有一个xmlXml 如何在xquery中将元素节点转换为文档,xml,xpath,xquery,marklogic,Xml,Xpath,Xquery,Marklogic,我有一个xml let $a := <a> <b>asd</b> <c>bvn</c> </a> let$a:= 自闭症 bvn 如果我返回$a/a/b,它将不起作用,因为这是一个元素节点 所以我需要将元素节点转换为文档节点。为了让它工作 我无法更改xpath。使用相同的xpath'/a/b'是否仍然可以得到结果?如果需要,可以创建文档节点 let
let $a := <a>
<b>asd</b>
<c>bvn</c>
</a>
let$a:=
自闭症
bvn
如果我返回$a/a/b
,它将不起作用,因为这是一个元素节点
所以我需要将元素节点转换为文档节点。为了让它工作
我无法更改
xpath
。使用相同的xpath
'/a/b'是否仍然可以得到结果?如果需要,可以创建文档节点
let $a := <a>
<b>asd</b>
<c>bvn</c>
</a>
let $a := document{$a}
return $a/a/b
let$a:=
自闭症
bvn
设$a:=文档{$a}
返回$a/a/b
或者直接
let $a := document {
<a>
<b>asd</b>
<c>bvn</c>
</a>
}
return $a/a/b
let$a:=文档{
自闭症
bvn
}
返回$a/a/b
我不认为将xml包装在文档节点中是您正在寻找的解决方案。您希望在文档节点中使用它的具体原因是什么
您真正需要的只是多包装一层xml,然后xpath就可以正常工作了。您可以选择任何元素作为动态生成的xml的根,例如:
let $a := <wrapper>
<a>
<b>ABC</b>
<c>XYZ</c>
</a>
</wrapper>
return $a/a/b
(: This will return the element <b>ABC</b> :)
let$a:=
基础知识
XYZ
返回$a/a/b
(:这将返回元素ABC:)
我建议不要将其包装在文档节点中,除非您有非常具体的原因。但根据上面列出的要求,您不需要。因此,我坚持将您的$a xml
封装在xml节点的另一层中