【问题标题】:Get index of nodes relative to parent using XPath使用 XPath 获取节点相对于父节点的索引
【发布时间】:2014-10-13 15:43:53
【问题描述】:

我需要从 XML 文档中检索特定节点的索引。该任务与此处的任务(Find position of a node using xpath)类似,但我无法将建议的解决方案应用于“多个请求的子节点”场景。考虑以下示例 XML 文档

<a>
<b>zyx</b>
<b>wvu</b>
<b>tsr</b>
<b>wvu</b>
</a> 

我想检索相对于 a 的值为“wvu”的 b 节点的索引,即我想产生一个向量 [2,4]。这可以用 XPath 1.0 完成吗?具体来说,我在 R 中使用 XML 包。

/编辑

这是一个示例文档:

library(XML)
file1 <- htmlParse("<a><b>zyx</b><b>wvu</b><b>tsr</b><b>wvu</b></a> ")
xpathSApply(file1, "count(a/b[.='wvu']/preceding-sibling::*)+1")
[1] 1

【问题讨论】:

    标签: xml r xpath


    【解决方案1】:

    我不知道在单个 XPATH 中执行此操作的方法,但您可以将节点查找和索引计算分成两个独立的逻辑步骤:

    sapply(getNodeSet(file1, "//a/b[.='wvu']"), 
        xpathSApply, "count(./preceding-sibling::*)+1")
    # [1] 2 4
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-14
      • 2015-09-28
      相关资源
      最近更新 更多