1

すべての数字を連結したい (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のように連結する必要があります....カンマで区切られたすべての値を分割してから操作しようとしています...しかしできませんでした...誰か考えがありますか

4

1 に答える 1

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文字列置換

于 2012-10-17T12:57:02.583 に答える