子元素的xpath表达式

时间:2012-05-09 14:46:04

标签: xpath

我有一个这种类型的xml文件

 <a Text="">
   <b>
     <c Text=""/>
     < c Text=""/>
   </b>
    <b>
          <c/>
    </b>
 </a>

所以,我需要像

这样的输出
     a
        c
        c

你能帮我写一下xpath表达式吗?我需要忽略b出现。

1 个答案:

答案 0 :(得分:0)

您希望选择节点和b节点,您可以使用以下表达式:

/a | /a/b/c

这将选择所有节点和(联合)所有c节点。请注意,它只会在文档中的指定级别上选择它们。您也可以选择以下内容:

//a | //c

也许您可以就此查询的目的向我们提供更多信息?

你也可以XQuery,像这样:

<div class="breadcrumb">
{
for $d in doc("test.xml")/a/b/c return
<a href="somepage.php?id={fn:data($d/@Text)}">{fn:data($d/@Text)}</a>
}
</div>

在以下输入

<a>
  <b>
    <c Text="Cat1" />
    <c Text="Cat2" />
    <c Text="Cat3" />
  </b>
  <b>
    <c Text="Cat4" />
    <c Text="Cat5" />
  </b>
</a>

你会得到这个输出:

<div class="breadcrumb">
    <a href="somepage.php?id=Cat1">Cat1</a>
    <a href="somepage.php?id=Cat2">Cat2</a>
    <a href="somepage.php?id=Cat3">Cat3</a>
    <a href="somepage.php?id=Cat4">Cat4</a>
    <a href="somepage.php?id=Cat5">Cat5</a>
</div>