代码之家  ›  专栏  ›  技术社区  ›  user391986

XPath特定的问题,选择一个子对象给定另一个子对象的值

  •  1
  • user391986  · 技术社区  · 16 年前

    我需要检索所有这些类型的节点: <parameter value="thisisthename" name="parameters" /> 哪里 type = MyTest 还有一个孩子 <parameter value="c:\temp\svn.exe" name="file" /> 等于 c:\temp\svn.exe

    ert[type='MyTest']/parameters/parameter[@value='c:\temp\svn.exe']
    
      <ert agents="0031">
      <type>MyTest</type> 
      <parameters>
      <parameter value="c:\temp\svn.exe" name="file" /> 
      <parameter value="thisisthename" name="parameters" /> 
      <parameter value="200" name="count" /> 
      </parameters>
      </ert>
    
    3 回复  |  直到 16 年前
        1
  •  1
  •   Ronald Wildenberg    16 年前

    你就快到了。这是您要查找的XPath表达式:

    /ert[type='MyTest']/parameters/parameter[@value='c:\temp\svn.exe']/../parameter[@value='thisisthename']
    

    其思想是您可以使用 /..

    如果你碰巧知道的话 c:\temp\svn.exe 总是在 parameter 如果需要节点,还可以使用:

    /ert[type='MyTest']/parameters/parameter[@value='c:\temp\svn.exe']/following-sibling::parameter[@value='thisisthename']
    

    这可能会快一点,因为不会发生回溯。

        2
  •  0
  •   Jamie    16 年前

    每当我有XPath问题的时候,我都会回到这个站点…希望它能帮助你。

    http://www.w3schools.com/XPath/xpath_syntax.asp

        3
  •  0
  •   user357812 user357812    16 年前

    我需要检索所有这些类型 节点数: <parameter value="thisisthename" name="parameters" /> type = MyTest 还有一个孩子 <parameter value="c:\temp\svn.exe" name="file" /> c:\temp\svn.exe

    所有这些

    /ert[type='MyTest']
        [parameters/parameter[@value='c:\temp\svn.exe']]
        /parameters/parameter[@value][@name]
    

    这意味着: 从一个 ert 根元素具有 type parameters/parameter value 参数/参数 孙子 价值 name 属性。