【问题标题】:XPath Select Nodes where all parent nodes do not contain specific attribute and valueXPath 选择所有父节点不包含特定属性和值的节点
【发布时间】:2013-06-19 13:04:58
【问题描述】:

我有以下 XML 结构:

<root>
  <Level1 IsEnabled="0"> <!-- Disabled -->
    <Level2 IsEnabled="1">
      <Level3 IsEnabled="1">
        <Level4 IsEnabled="1">
          <Child /> <!-- Don't include this one -->
        </Level4>
      </Level3>
    </Level2>
  </Level1>
  <Level1 IsEnabled="1">
    <Level2 IsEnabled="1">
      <Level3 IsEnabled="0"> <!-- Disabled -->
        <Level4 IsEnabled="1">
          <Child /> <!-- Don't include this one -->
        </Level4>
      </Level3>
    </Level2>
  </Level1>
  <Level1 IsEnabled="1">
    <Level2 IsEnabled="1">
      <Level3 IsEnabled="1">
        <Level4 IsEnabled="1">
          <Child /><!-- Include this one -->
        </Level4>
      </Level3>
    </Level2>
   </Level1>
</root>

我想选择其任何祖先不包含 IsEnabled="0" 的所有子节点。所以对于上面的 XML 我只想选择最后一个子节点。此外,如果祖先节点不包含 IsEnabled 属性,则仍应包含子节点。

【问题讨论】:

    标签: xpath


    【解决方案1】:

    问:我想选择其任何祖先不包含 IsEnabled="0" 的所有子节点 试试这个:

    //Child[not(ancestor::*[@IsEnabled='0'])]
    

    【讨论】:

    • 2 秒后将发布同样的内容 :)
    • 啊!好的!我正在尝试 //Child[ancestor::*[not(@IsEnabled='0')]] - 只需要移动 not。谢谢!
    • 这太棒了,我不知道该怎么做!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-30
    • 2011-01-30
    • 2012-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多