读取给定父节点的所有叶节点

时间:2014-12-23 11:56:42

标签: c# xml xpath

我需要给定父节点主体下的叶节点列表。 基本上我想要所有的节点 11和10 来自以下XML。

我尝试了这个,但它带来了所有节点。 // [否()]

例如,我想给出类似的东西  var vNode = nodeBody.SelectNodes(“Body”+ @“// [not()]”);

应该是Body下的所有叶子节点。

    <MAIN Txt="PC">
      <BODY Txt="TC">
        <Element_3 Txt="OC">
          <Element3_ID Name="yoy">10</Element3_ID>
        </Element_3>
        <Element_3 Txt="TRO">
          <Element_4 Txt="SSO">
            <Element4_ID Name="JOY">11</Element4_ID>
            <Element4_ID Name="TOY">13</Element4_ID>
            <Element4_ID Name="POY">14</Element4_ID>
            <Element4_ID Name="SOY">17</Element4_ID>
            <Element4_ID Name="GOY">18</Element4_ID>
            <Element4_ID Name="FOY">19</Element4_ID>
          </Element_4>
        </Element_3>
      </BODY>
    </MAIN>

1 个答案:

答案 0 :(得分:0)

使用路径.//node()[not(node())]选择没有任何子节点的所有后代节点,这些节点将为您提供任何空元素节点和所有文本节点,或使用.//*[not(*)]选择所有不包含任何其他元素节点的子节点元素节点。如果您不想选择完全空的元素节点,请使用.//*[not(*) and normalize-space()]