0

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

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

所以,我需要一个像

     a
        c
        c

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

4

1 回答 1

0

假设您想要选择 a 节点和 b 节点,您可以使用以下表达式:

/a | /a/b/c

这将选择所有 a 节点和(联合)所有 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>
于 2012-05-09T14:55:19.617 回答