我想要连接所有数字(例如1 + 0 + 1 + 1 + 1)。请注意,逗号分隔值可能会增加或减少。这是xml xsl代码:
XML:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="class.xsl"?>
<root><LIST>
<ROLE>s1</ROLE>
<STATUS>yes</STATUS>
</LIST>
<LIST>
<ROLE>s1</ROLE>
<STATUS>d</STATUS>
</LIST>
<LIST>
<ROLE>Member</ROLE>
<STATUS>no</STATUS>
</LIST>
<LIST>
<ROLE>Member</ROLE>
<STATUS>no</STATUS>
</LIST>
<LIST>
<ROLE>Member</ROLE>
<STATUS>yes</STATUS>
</LIST>
</root>
的xsl:
<?xml version="1.0" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/"><html>
<h2>
<xsl:variable name="orgactcount">
<xsl:for-each select="/root/LIST">
<xsl:if test = "STATUS='yes'">
<xsl:value-of select="'1,'"/>
</xsl:if>
</xsl:for-each>
</xsl:variable>
<xsl:value-of select="$orgactcount"/>
</h2></html>
</xsl:template>
</xsl:stylesheet>
orgactcount变量有1,1,值,它必须像1 + 1那样结合....我试图拆分所有逗号分隔值然后操纵......但我不能......有没有人有想法
答案 0 :(得分:2)
我通过添加translate
函数来编辑您的XSLT。
<?xml version="1.0" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<h2>
<xsl:variable name="orgactcount">
<xsl:for-each select="/root/LIST">
<xsl:if test = "STATUS='yes'">
<xsl:value-of select="'1,'"/>
</xsl:if>
</xsl:for-each>
</xsl:variable>
<xsl:variable name="formattedorgactcount" select="translate($orgactcount, ',', '+' )"/>
<xsl:value-of select="$formattedorgactcount"/>
</h2>
</html>
</xsl:template>
</xsl:stylesheet>
以下内容也对您有所帮助。