2011-12-24 7 views
1

XSLT 문자열 매개 변수를 기반으로 XML 요소를 작성하려고합니다. 아이디어는 아주 간단합니다.XSLT 문자열 매개 변수를 반복하고 각 매개 변수에 대해 작업하기

사용자가 쉼표로 구분 된 이름 목록 인 매개 변수를 지정합니다. 각각의 이름은, 나는 XML 파일에 다음과 같은 기록 할 : {$string}는 쉼표로 구분 된 값 중 하나입니다

<category>{$string}</category> 

. 사용자가이 매개 변수를 제공하는 경우 그래서 : category1, category2, cat3를, 그때는 XML 파일에서이 얻을해야합니다

<category>category1</category> 
<category>category2</category> 
<category>cat3</category> 

또한 어떤 XML 요소가 인쇄되어 있지 않은 경우 빈 문자열을 제공 할 수 있어야한다.

XSLT 2.0을 사용 중이므로 2.0 기반 XPath 및 XSLT 구조를 자유롭게 포함하십시오.

답변

3

이 변환 (XSLT 2.0)

<xsl:stylesheet version="2.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:output omit-xml-declaration="yes" indent="yes"/> 

<xsl:param name="pCategories" 
select="'category1, category2, cat3'"/> 

<xsl:template match="/"> 
    <xsl:for-each select="tokenize($pCategories, ',')[.]"> 
    <category> 
    <xsl:value-of select="normalize-space()"/> 
    </category> 
    </xsl:for-each> 
</xsl:template> 
</xsl:stylesheet> 
어떤 XML 문서 (사용되지 않음)에인가

가 원하는 생산 올바른 결과 :

<category>category1</category> 
<category>category2</category> 
<category>cat3</category> 
관련 문제