6

次の 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 属性が含まれていない場合でも、子を含める必要があります。

4

1 に答える 1

11

Q:先祖に IsEnabled="0" が含まれていないすべての子ノードを選択したい :

//Child[not(ancestor::*[@IsEnabled='0'])]
于 2013-06-19T13:17:29.430 に答える