我需要给定父节点主体下的叶节点列表。 基本上我想要所有的节点 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>
答案 0 :(得分:0)
使用路径.//node()[not(node())]
选择没有任何子节点的所有后代节点,这些节点将为您提供任何空元素节点和所有文本节点,或使用.//*[not(*)]
选择所有不包含任何其他元素节点的子节点元素节点。如果您不想选择完全空的元素节点,请使用.//*[not(*) and normalize-space()]
。