我相信这是可能的,但无法弄清楚语法。像这样:
xmlNode.SelectNodes("//*[count(child::*) <= 1]")
但这不正确。
答案 0 :(得分:56)
使用强>:
//node()[not(node())]
如果只需要元素叶子节点(这需要澄清 - 是非元素子元素被认为是叶子节点的元素吗?),那么下面的XPath表达式会选择它们:
//*[not(*)]
上面的两个表达式都可能是选择所需节点(任意节点或元素 - 叶节点)的最短。
答案 1 :(得分:25)
任何没有元素子元素的元素
//*[not(child::*)]
答案 2 :(得分:2)
为什么或等于为1?
xmlNode.SelectNodes("//*[count(child::*) = 0]")
在此网站http://www.whitebeam.org/library/guide/TechNotes/xpathtestbed.rhtm
进行测试等非常有帮助..
答案 3 :(得分:0)
我正在添加这个XSLT答案,因为看起来google的正面匹配缺乏这样的解决方案:
经过长时间的努力将CDATA提取为XML,最终,这个表达对我来说效果最好:
<xsl:template match="*[not(child::*)]/text()">