使用:
string-length() - string-length(translate(., '
', ''))
虽然通过使用上面的 XPath 单线,您根本不需要 XSLT,为了完整性,这里是它:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="text()">
<xsl:value-of select=
"string-length() - string-length(translate(., '
', ''))"/>
</xsl:template>
</xsl:stylesheet>
当此转换应用于提供的 XML 文档时:
<SpecialInstraction>One
Two
Three
Four
Five
Six
Seven
Eight
Nine
Ten
Eleven
twelve
thirteen
fourteen
fifteen</SpecialInstraction>
产生了想要的正确结果:
14
请注意:
此解决方案 onlu 计算 NL 字符的数量。为什么我忽略了 CR?仅仅是因为根据W3C XML 规范,任何兼容的 XML 解析器都必须执行以下操作:
在完成任何其他处理之前,XML 文档中字面上存在的所有 #xD 字符都将被删除或替换为 #xA 字符。