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

本文关键字:叶节点 父节点 读取 | 更新日期: 2023-09-27 18:35:02

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

我试过这个,但它带来了所有的节点。[不是((]

例如,我想给这样的东西 var vNode= nodeBody.SelectNodes("Body"+@"//[not((]"(;

它应该是正文下的所有叶节点。

    <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>

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

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