使用XSL计算XML中的端点
我希望能够使用XSL计算XML文件中的“端点”。 我所说的端点是指没有包含数据的子项的标记 i、 e使用XSL计算XML中的端点,xml,xslt,Xml,Xslt,我希望能够使用XSL计算XML文件中的“端点”。 我所说的端点是指没有包含数据的子项的标记 i、 e 诺特诺日 无效看跌期权 2. 1. 这个XML应该返回4,因为有4个“端点”*[not(*)]用于没有子元素的元素 编辑:要计算它们,只需使用计数(元素)尝试:- <xsl:variable name="numOfLeafNodes" select="count(//*[not(*)])" /> 这将告诉您在正在转换的整个xml中找到了多少叶节点。使用:- <xs
诺特诺日
无效看跌期权
2.
1.
这个XML应该返回4,因为有4个“端点”*[not(*)]
用于没有子元素的元素
编辑:要计算它们,只需使用计数(元素)
尝试:-
<xsl:variable name="numOfLeafNodes" select="count(//*[not(*)])" />
这将告诉您在正在转换的整个xml中找到了多少叶节点。使用:-
<xsl:variable name="numOfLeafNodes" select="count(.//*[not(*)])" />
查找作为当前上下文节点的后代的叶节点的计数。
您是指没有子节点的节点吗?我们还需要知道您想要使用什么语言,否则您将得到一个松散的伪代码答案。XML格式非常松散,因此我想计算没有子节点但可能包含数据的任何内容。如何递归执行此操作?如果执行此操作,则返回2而不是4。@克里斯:确实如此,但这将返回4:count(ParentTag/xmlsippet//*[not(*)))
注意/
是后代的捷径::
轴。我还注意到我遗漏了实际的count函数本身。这看起来不错,但我发布的XML只是一个片段,所以我需要调用类似于select=“count(//ParentTag/xmlsippet/*[not(*)和normalize-space()!=”)“
-这返回2而不是4。我做错了什么?啊哈,我用了这个,它工作了select=“count(ParentTag/xmlsippet/*[not(*)和normalize-space()!=””)
<xsl:template match="/>
<xsl:value-of select="count(//*[not(*) and normalize-space() != ''])" />
</xsl:template>
<xsl:template match="/>
<xsl:value-of select="count(//*[not(*) and normalize-space() != ''])" />
</xsl:template>