concat逗号分隔的字符串值

时间:2012-10-17 08:35:52

标签: xml xslt

我想要连接所有数字(例如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那样结合....我试图拆分所有逗号分隔值然后操纵......但我不能......有没有人有想法

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>

以下内容也对您有所帮助。

XSLT string replace