【问题标题】:XPath 1.0: Find all elements that are mentioned inside a different elementXPath 1.0:查找在不同元素中提及的所有元素
【发布时间】:2022-01-27 10:39:42
【问题描述】:

例如,我有这个:

<setting>
  <name>text1</name>
</setting>
<setting>
  <name>text2</name>
</setting>
<setting>
  <name>text3</name>
</setting>

<thing>
  <name>name</name>
  <settings>
    <li>text1</li>
    <li>text3</li>
  </settings>
</thing>

我需要选择“thing/settings/li”中提到的所有“设置”节点。 在示例中,xpath 应返回设置 [1] 和设置 [3]。

【问题讨论】:

    标签: xml xpath xpath-1.0


    【解决方案1】:

    您不能直接使用 XPath 1.0 执行此操作。
    您可以使用 XPath 1.0 和一些附加代码来获取 thing/settings/li 中的值列表

    //thing/settings/li
    

    然后找到所有具有这些值的setting 节点

    //setting/name[text()='value']
    

    value 将是从先前找到的列表中传递到那里的参数。
    如何传递参数取决于您使用的语言等。

    【讨论】:

      【解决方案2】:

      将您的 XML 包装在单个根元素中,使其格式正确。那么……

      这个 XPath,

      //setting[name=//thing/settings/li]
      

      将选择名称在//thing/settings/li 中列出的所有settings

      <setting>
        <name>text1</name>
      </setting>
      <setting>
        <name>text3</name>
      </setting>
      

      根据要求。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-11-10
        • 2018-07-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-07-16
        • 2020-05-02
        • 1970-01-01
        相关资源
        最近更新 更多