XPath 1.0:使用当前节点的父节点的属性值来查找另一个匹配的节点

T.卡拉诺

我已经找到了许多与此问题类似的帖子,但是没有任何答案可以回答这个特定问题。我必须使用XPath 1.0。我没有可用的XSLT(或XQuery或其他任何东西),并且我不能使用XPath 2.0。我正在从一个软件(Arbortext Styler)内部执行此XPath,在其中可以使用XPath 1.0从其他节点中选择内容,但是XSLT在此上下文中不可用。另外,我无法控制源XML的结构。

当我处于的上下文中时<step>,我需要能够匹配先前的过程/任务/步骤,该步骤的父过程与此步骤的父过程与当前过程的@ref和@seq匹配,并且字母“ A”作为@conf的值。

<document>
  <topic>
    <procedure ref="056" seq="01" conf="A">
      <task>
        <step>1. Blah Blah (056-01-A)</step>
      </task>
    </procedure>
    <procedure ref="057" seq="02" conf="A">
      <task>
        <step>2. Blah blah (057-02-A)</step>
      </task>
    </procedure>
    <procedure ref="057" seq="02" conf="B">
        <task>
            <step>2. Blah blah (057-02-B)</step>
        </task>
    </procedure>
    <procedure ref="057" seq="03" conf="A">
        <task>
            <step>3. Blah blah (057-02-A)</step>
        </task>
    </procedure>
  </topic>
</document>

我需要的是这样的东西,但是没有current()函数,软件应用程序不支持该函数:

//procedure[@ref=current()/ancestor::procedure/@ref and @seq=current()/ancestor::procedure/@seq and @conf='A']/task/step

或类似这样的东西,但是没有for in return语句:

for $ref in ancestor::procedure/@ref, $seq in ancestor::procedure/@seq return //topic/procedure[@ref=$ref and @seq=$seq and @conf='A']/task/step/text()

有人对XPath 1.0如何完全实现这一点有任何建议吗?请注意,该过程的位置无法进行硬编码。重复的引用可以在任意位置多次出现。此外,还要求以的起始上下文进行此匹配<step>

我怀疑我的问题的答案是无法解决,但我确实知道,如果可以解决,这就是寻找答案的地方!预先感谢所有考虑此问题的人。

这篇文章是类似的,但是搜索正在寻找起始上下文的子级:Xpath获取具有与另一个节点匹配的属性的所有节点

这也很有趣,但是我的属性值不是ID:Xpath:从ID属性与ID锚点的匹配中查找元素值

有什么建议?

T.卡拉诺

正如Tomalak和Honza Hejzl所建议的那样,使用XPath 1.0无法做到这一点。感谢您的反馈。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Xpath查找另一个节点中部分匹配的节点值

来自分类Dev

Xpath获取具有与另一个节点匹配的属性的所有节点

来自分类Dev

Xpath获取具有与另一个节点匹配的属性的所有节点

来自分类Dev

xpath通过属性获取节点值等于另一个节点的值

来自分类Dev

xpath通过属性获取节点值等于另一个节点的值

来自分类Dev

从另一个xpath查询节点查询xpath

来自分类Dev

从另一个xpath查询节点查询xpath

来自分类Dev

使用xpath选择一个属性值最大的节点

来自分类Dev

基于XPath的节点是否基于另一个节点的值?

来自分类Dev

XPath根据另一个节点的位置按位置选择一个节点

来自分类Dev

Xpath选择当前节点的下一个父节点

来自分类Dev

如何使用xpath查找以下节点(同级节点和上一个节点)

来自分类Dev

Xpath匹配另一个节点中的同级对象

来自分类Dev

根据python xpath中另一个的值选择xml节点

来自分类Dev

如何通过使用XPath匹配文本来查找父节点

来自分类Dev

XPath查找第一个子节点包含特定值的节点

来自分类Dev

使用XPath查找具有X属性的第一个祖先节点

来自分类Dev

XPath谓词“父节点是当前节点吗?”

来自分类Dev

XPath谓词仅使用节点集中的第一个节点进行匹配

来自分类Dev

XPATH获取当前节点的属性

来自分类Dev

XPATH获取当前节点的属性

来自分类Dev

使用xpath需要到达一个孩子并让另一个节点向上一级

来自分类Dev

XPath:在同一节点中某个值小于另一个值时,仅选择元素

来自分类Dev

使用XPath获取节点的每个子节点的第一个子节点

来自分类Dev

1)在给定节点之前但2)也是另一个给定节点的后代的选择节点

来自分类Dev

使用 XPath 1 在 2 个 XPath 节点之间获取文本。通用解决方案,不是特定情况

来自分类Dev

XPath选择匹配的节点

来自分类Dev

xpath匹配错误的节点

来自分类Dev

Xpath:获取节点属性

Related 相关文章

  1. 1

    Xpath查找另一个节点中部分匹配的节点值

  2. 2

    Xpath获取具有与另一个节点匹配的属性的所有节点

  3. 3

    Xpath获取具有与另一个节点匹配的属性的所有节点

  4. 4

    xpath通过属性获取节点值等于另一个节点的值

  5. 5

    xpath通过属性获取节点值等于另一个节点的值

  6. 6

    从另一个xpath查询节点查询xpath

  7. 7

    从另一个xpath查询节点查询xpath

  8. 8

    使用xpath选择一个属性值最大的节点

  9. 9

    基于XPath的节点是否基于另一个节点的值?

  10. 10

    XPath根据另一个节点的位置按位置选择一个节点

  11. 11

    Xpath选择当前节点的下一个父节点

  12. 12

    如何使用xpath查找以下节点(同级节点和上一个节点)

  13. 13

    Xpath匹配另一个节点中的同级对象

  14. 14

    根据python xpath中另一个的值选择xml节点

  15. 15

    如何通过使用XPath匹配文本来查找父节点

  16. 16

    XPath查找第一个子节点包含特定值的节点

  17. 17

    使用XPath查找具有X属性的第一个祖先节点

  18. 18

    XPath谓词“父节点是当前节点吗?”

  19. 19

    XPath谓词仅使用节点集中的第一个节点进行匹配

  20. 20

    XPATH获取当前节点的属性

  21. 21

    XPATH获取当前节点的属性

  22. 22

    使用xpath需要到达一个孩子并让另一个节点向上一级

  23. 23

    XPath:在同一节点中某个值小于另一个值时,仅选择元素

  24. 24

    使用XPath获取节点的每个子节点的第一个子节点

  25. 25

    1)在给定节点之前但2)也是另一个给定节点的后代的选择节点

  26. 26

    使用 XPath 1 在 2 个 XPath 节点之间获取文本。通用解决方案,不是特定情况

  27. 27

    XPath选择匹配的节点

  28. 28

    xpath匹配错误的节点

  29. 29

    Xpath:获取节点属性

热门标签

归档