我相信这是可能的,但无法弄清楚语法。这样的事情:

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答案,因为似乎Google的前匹配缺乏这样的解决方案:

在将CDATA提取为XML的漫长斗争之后,最终,这种表达最适合我:

<xsl:template match="*[not(child::*)]/text()">
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top