Xslt 计算XSL中具有特定子节点的节点数
我有一些XSL,其中我需要为每个具有特定子节点的人执行特定操作,但该类型的最后一个节点除外:Xslt 计算XSL中具有特定子节点的节点数,xslt,Xslt,我有一些XSL,其中我需要为每个具有特定子节点的人执行特定操作,但该类型的最后一个节点除外: <xsl:for-each select="/FormData/Persons/Person"> <xsl:if test="MySpecificType"> <!--Header--> <xsl:call-template name="Header"
<xsl:for-each select="/FormData/Persons/Person">
<xsl:if test="MySpecificType">
<!--Header-->
<xsl:call-template name="Header"/>
<!--Body-->
<xsl:call-template name="Person"/>
<xsl:if test="position() != last()">
<!-- Specific logic -->
</xsl:if>
</xsl:if>
</xsl:for-each>
if位置()的测试!=last只捕获他不是最后一个人的情况,我真正想捕获的是他是否不是特定类型的最后一个人
有没有办法计算有多少人拥有该子节点,然后在我的if中检查?或者可能只是foreach超过了具有此节点的用户
xml看起来像:
<Person><Name /><SpecificType><OtherInfo /></SpecificType></Person>
我不想捕获的节点将不包括SpecificType节点。使用谓词
而不是xsl:if使用谓词
而不是xsl:if
我需要为每个人做一个特定的操作,每个人都有一个特定的
子节点
有没有办法数一数有多少人拥有这种能力
子节点
计算节点数是一回事;处理节点是另一个问题
要计算符合条件的节点,可以执行以下操作:
<xsl:value-of select="count(/FormData/Persons/Person[MySpecificType]"/>
要处理它们,请执行以下操作:
<xsl:for-each select="/FormData/Persons/Person[MySpecificType]">
<!-- do something -->
<xsl:if test="position() != last()">
<!-- do something extra -->
</xsl:if>
</xsl:for-each>
我需要为每个人做一个特定的操作,每个人都有一个特定的
子节点
有没有办法数一数有多少人拥有这种能力
子节点
计算节点数是一回事;处理节点是另一个问题
要计算符合条件的节点,可以执行以下操作:
<xsl:value-of select="count(/FormData/Persons/Person[MySpecificType]"/>
要处理它们,请执行以下操作:
<xsl:for-each select="/FormData/Persons/Person[MySpecificType]">
<!-- do something -->
<xsl:if test="position() != last()">
<!-- do something extra -->
</xsl:if>
</xsl:for-each>
我想计算它们的唯一原因是进行处理,感谢您的解释!我想数一数的唯一原因是为了处理,谢谢你的解释!