使用XSLT 1.0.
<xsl:for-each select="*">
<xsl:variable name="xxxx" select="@name" />
<xsl:if test="../../../../fieldMap/field[@name=$xxxx]">...
<xsl:if test="position() != last()">////this is not work correctly as last() number is actual last value of for loop and position() is based on if condition.
<xsl:text>,</xsl:text>
</xsl:if>
</xsl:if>
</xsl:for-each>
Run Code Online (Sandbox Code Playgroud)
你能建议我怎样才能删除最后一个' ,'?
position()并且last()应该基于循环,而不是xsl:if.我想你要说的是你实际上想要检查这是否xsl:if是真的最后一个元素,因为这样的元素实际上可能不是循环中的最后一个元素.
我建议将你xsl:for-each和你的结合起来xsl:if,并只选择那些条件为真的元素.那样你就应该能够以你期望的方式检查位置
<xsl:for-each select="*[@name = ../../../../fieldMap/field/@name]>
<xsl:if test="position() != last()">
<xsl:text>,</xsl:text>
</xsl:if>
</xsl:for-each>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3945 次 |
| 最近记录: |