想在Xquery中使用* condition

时间:2012-04-01 10:24:05

标签: xml xquery

我想在XML中提取包含属性条件name="var"的标签。但我不知道哪个元素有这个属性条件所以我可以使用以下XQuery:

<ab>
    <c name="var">
        <d name ="var">
            <e>
            </e>
        </d>
        <f>
        </f>
    </c>
</ab>

XQuery:

doc('abc.xml')//ab/*[@name="var"]

XML生成的CLANG没有标记值,但所有内容都只作为属性存在。

2 个答案:

答案 0 :(得分:0)

您当前正在选择abc.xml中所有元素,这些元素是名为<ab>的元素的子元素,并且具有给定的属性。

如您所愿“提取包含XML的XML标签”和提供的文档,我猜您实际上想要查询顶级元素<ab>中的所有元素,这些元素将被写为

doc('abc.xml')/ab//*[@name="var"]

并返回元素<c><d>及其各自的子节点。

<c name="var">
  <d name="var">
    <e/>
  </d>
  <f/>
</c>

<d name="var">
  <e/>
</d>

答案 1 :(得分:0)

似乎这必须是重复

doc('abc.xml')//*[@name="var"]

应该可以工作,但可能效率不高,具体取决于您的XQuery处理器。