我相信这是可能的,但无法弄清楚语法。像这样的东西:
xmlNode.SelectNodes("//*[count(child::*) <= 1]")
但这不正确。
我相信这是可能的,但无法弄清楚语法。像这样的东西:
xmlNode.SelectNodes("//*[count(child::*) <= 1]")
但这不正确。
使用:
//node()[not(node())]
如果只需要元素叶节点(这需要澄清——具有非元素子节点的元素是否被视为叶节点?),则以下 XPath 表达式将选择它们:
//*[not(*)]
上面的两个表达式可能是选择所需节点(任意节点或元素——叶节点)的最短表达式。
任何没有子元素的元素
//*[not(child::*)]
为什么小于或等于1 ?
xmlNode.SelectNodes("//*[count(child::*) = 0]")
在此站点http://www.whitebeam.org/library/guide/TechNotes/xpathtestbed.rhtm进行测试等
很有帮助..
我正在添加这个 XSLT 答案,因为谷歌的前场比赛似乎缺乏这样的解决方案:
经过长期努力将 CDATA 提取为 XML,最终,这个表达式最适合我:
<xsl:template match="*[not(child::*)]/text()">