【问题标题】:Howto find the first common XPath ancestor in Javascript?如何在 Javascript 中找到第一个常见的 XPath 祖先?
【发布时间】:2011-04-21 12:21:14
【问题描述】:

我有两个 XPath,例如:

/html/body/div[3]/div[4]/table/tbody/tr[2]/td[4] 和 /html/body/div[3]/div[4]/table/tbody/tr[2]/td[3]/a[2]

我现在如何找到第一个共同祖先? 在这种情况下,它将是/html/body/div[3]/div[4]/table/tbody/tr[2]/

我找到了this question,但解决方案是 ruby​​,并没有真正让我知道如何在 Javascript 中执行此操作。有谁能够帮我? 谢谢。

【问题讨论】:

标签: javascript xpath


【解决方案1】:

这似乎是针对 JS 而不是 XSLT,尽管共同因素是元素的 XPATH。

【讨论】:

  • 这是关于 XPath 表达式的,不管宿主语言是什么。如果答案取决于宿主语言,那么问题将与特定的 XPath 引擎有关,并且应该重新标记。
  • @Alejandro,我不确定我是否同意...这完全可以在不使用 XPath 引擎的情况下解决,这取决于我们对输入路径的假设。例如。最好的情况,我们可以只取最长的公共字符串前缀,然后回滚到最后一个/。这是假设给定节点的 XPath 始终遵循规范形式,这有时是正确的。
  • @LarsH:我认为这个问题即将得到一个节点集结果。如果问题最终是关于字符串的,那么是的,它不能在 XPath 1.0 中完成,除非您提供一个扩展函数来处理递归。当然,使用 XSLT 会很简单。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多