2012-10-17 7 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-, 값을 갖는다 .. .i 모든 쉼표로 구분 된 값을 분리하고 조작하려고합니다 ...하지만 나는 할 수 없습니다 ... 누구든지 아이디어가 있습니까?

+0

정확히 무엇을 하시겠습니까? 제발 좀 정교하게, 나는 문제가 무엇인지 모르겠다. – Jost

+0

내 코드가 업데이트되었습니다. 한번 봐주세요! – ezhil

+0

당신은 현재의 입력 XML 문서와 예상 출력을 보여줄 수 있습니다. 고맙습니다. –

답변

2

나는을 추가하여 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

+0

예상대로 작동합니다. 감사합니다 Madurika Welivita – ezhil

+1

@ ezhil Stackoverflow 감사의 방법은 답변을 수락하고 최대 투표 ... 환호 ... –

+0

@ thezhil 또한 화살표 머리를 클릭하여 대답에 대한 투표 ... 감사합니다 –

관련 문제