【问题标题】:detect a circle via xpath通过 xpath 检测一个圆圈
【发布时间】:2022-01-17 17:46:18
【问题描述】:

给定一个如下所示的 XML 文档,当每个“a”都有一个唯一标识符并且嵌套在其中的每个“b”都引用“a”的一个实例时:

<a id="1">
  <b ref="2">
  </b>
</a>
<a id="2">
 <b ref="1">
 </b>
</a>

我想找到一种方法来找到“a”,他们的“b”引用“a”,而“b”又引用第一个“a” . 我知道这样说很笨拙,但我的意思是我正在寻找一种方法来找到一个圆(1 有一个“b”实例指向 2,而 2 有一个“b”实例指向1)

有没有办法将它放入 XPath 查询中?

【问题讨论】:

  • XPath 的哪个版本?
  • XPath 1.0 版。

标签: xml xpath


【解决方案1】:

由于 XPath 1.0 不支持 current() 这实际上是不可能的(see this question as well),我能得到的最接近的是:

//a[b[@ref[.= ancestor::a/following-sibling::a[b[@ref[.=ancestor::a/preceding-sibling::a/@id]]]/@id]]]

它将匹配a 与等于后面a/@idb/@ref 与等于前面a/@id 的b/@ref

【讨论】:

  • 这能回答你的问题吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-08-26
  • 2018-10-14
  • 1970-01-01
  • 1970-01-01
  • 2013-01-13
  • 2018-12-15
  • 1970-01-01
相关资源
最近更新 更多