2011-11-03 3 views
0

가능한 중복 :
Does xslt have split() function?XSL에서 문자열을 토큰 화하고 for-each를 사용하여 토큰을 반복하는 방법은 무엇입니까?

나는 각각에 대한-각각의 값을 인쇄에 사용 토큰을 반복 한 후, 내 XSL 스타일 시트에 쉼표로 구분 된 변수를 토큰 화하려면 토큰, 이걸하는 가장 좋은 방법은 뭔가?

<xsl:variable name="columns" select="'EMPID,NAME,DEPT"/> 

<xsl:for-each select=???/> 
    <!-- print name of token --> 
</xsl:for-each> 
+0

XSLT 1.0 또는 2.0? –

+0

나는 1.0을 사용하고 있다고 생각하는데, XSLT 컴파일러가 str : tokenize()에 대해 불평하고있다. – raffian

+0

XSLT 1.0을 사용한다면 다음 질문은 "어느 XSLT 엔진?" –

답변

2

잘 XSLT 2.0 당신은 단순히 for-each select="tokenize($columns, ',')"를 사용합니다. 당신은 XSLT 1.0 및 XPath는 1.0을 사용하는 경우

<xsl:for-each select="str:tokenize($columns, ',')" xmlns:str="http://exslt.org/strings">...</xsl:for-each> 
+0

나는 그것을 사용하려했지만 컴파일 중이 아니다. select = "tokenize ($ columns, ',')"가 유효한 Xpath 표현식이 아니며 select = "str : tokenize ($ columns, ',')"가 작동하지 않는다고합니다. – raffian

0

다음

<xsl:variable name="columns" select="'EMPID,NAME,DEPT"/> 

(심지어 허용을 쓸 수 없습니다 : XSLT 1.0을 사용하면 비슷한 EXSLT 또는 기타 확장 기능이 지원되는지 여부를 확인해야합니다 거짓 단일 인용 :

XPath 호출을 사용하여 문자열을 문자열과 문자열로 나눈 재귀 적 템플릿을 작성하면됩니다.

실제 데이터를 포함하여 더 구체적으로해야 할 일을 설명하면 아마 도움이 될 것입니다.