2012-10-17 286 views
1

我想連接所有數字(如1 + 0 + 1 + 1 + 1)。請注意逗號分隔值可能增加或減少。下面是XML XSL代碼:concat逗號分隔的字符串值

的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,值,它必須concated像1 + 1 ... 。我試圖分割所有的逗號分隔值,然後操縱...但我不能...有沒有人有想法

+0

你究竟想幹什麼?請詳細說明一下,我沒有看到問題所在。 – Jost

+0

我已更新我的代碼。請看一看! – ezhil

+0

您可以顯示您當前的輸入XML文檔以及您的預期輸出,因爲這會使事情變得更加清晰。謝謝。 –

回答

2

我編輯你的XSLT加入translate功能。

<?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

+0

它按預期工作。感謝Madurika Welivita – ezhil

+1

@ezhil在Stackoverflow中感謝的方式是接受答案並投票支持...乾杯... –

+0

@ezhil爲答案投贊成票,通過點擊箭頭頭..謝謝 –