XPATH选择多个值

时间:2015-12-01 17:20:03

标签: xml xpath

我有以下xml文件:

<a ida="1">
    <b>data</b>
    <c idc="1">
        <d>data</d>
        <e ide="1">
            <f>data</f>
        </e>
        <e ide="2">
            <f>data</f>
        </e>
    </c>
</a>

<a ida="2">
    <b>data</b>
    <c idc="2">
        <d>data</d>
        <e ide="3">
            <f>data</f>
        </e>
        <e ide="4">
            <f>data</f>
        </e>
    </c>
</a>

我想通过XPATH检索b元素以及c的所有e子元素及其f元素。

使用XQUERY执行类似的操作:

xquery version "3.0";
for $x in doc("file.xml")//a//c//e
order by $x//f ascending
return <res>{$x/../../b, $x//f}</res>

在XPATH中,我只能选择一个元素:

doc("askhsh.xml")//a//c//e//f

2 个答案:

答案 0 :(得分:0)

以下是您正在寻找的en xPath:

//a/b | //a/c/e

答案 1 :(得分:0)

我很抱歉,但是你不清楚查询的结果是什么。我最好的猜测是这个

xquery version "3.0";
for $x in doc("so.xml")//a
  let $b := $x/b
  let $fs := $x//f
  let $es := 
    for $f in $fs          
    order by $f ascending
    return $f/..
return <res>{($b,$es)}</res>