Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
子元素的xpath表达式_Xpath - Fatal编程技术网

子元素的xpath表达式

子元素的xpath表达式,xpath,Xpath,我有一个这种类型的xml文件 <a Text=""> <b> <c Text=""/> < c Text=""/> </b> <b> <c/> </b> </a> 你能帮我写这篇文章的xpath表达式吗?我需要忽略b的出现。假设您需要选择a节点和b节点,您可以使用以下表达式: /a | /a/b/c 这将选择所有a

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

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

你能帮我写这篇文章的xpath表达式吗?我需要忽略b的出现。

假设您需要选择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>

{
对于文档中的$d(“test.xml”)/a/b/c返回
}
根据以下输入

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


您的意思是查找标记的后代吗?或者你的意思是只有一个标签,并且它包含标签?您是否可以扩展您的问题,以显示标记也可能出现在何处,如果有没有标记的标记,是否有其他类型的标记是的子标记,等等。根据您向我们展示的内容,我不会使用xpath,我只会浏览文档…
/*[not(self::b)]
将选择除
b
@vansimke之外的所有节点:需要选择标签和所有标签。标签只会出现在内部。没有其他c标记出现在单独的Lysite导航中。当我剪辑面包屑时,它需要显示它下面的所有页面。在这个过程中,我不希望出现标签。我很困惑,为什么第一个选项不能过滤掉外部的标签呢?我添加了一个Xquery方法,你能使用这个吗?
<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>