2011-03-16 8 views
0

문자열에 작은 따옴표를 전달해야 해당 구문의 원본 xml 파일을 읽을 수 있어야합니다. 어떻게해야합니까?xslt 문자열의 특수 문자

<xsl:when test="contains(ct-type/cats, 'Cmml') or contains(ct-type/cats, 'rst')"> 
<xsl:element name="Terms"> 
<xsl:value-of select="'example'"/> 
</xsl:element> 
</xsl:when> 
+0

여기에는 두 가지 제약 조건이 있습니다. XPath의 리터럴 문자열은 구분 기호를 내용으로 가질 수 없으며 XML 속성의 값에 대해서도 마찬가지입니다. 따라서 @ DevNull의 [answer] (http://stackoverflow.com/questions/5332938/special-character-inside-of-xslt-string/5333150#5333150)를 사용하거나 XML 속성 값 정규화를 다음과 같이 사용해야합니다. in :''. 물론, 마지막 하나는 덜 읽기 쉽습니다 ** ... –

답변

0

당신은 문자열 내부 엔티티를 사용하는 다음 속성 값 구분 기호로 아포스트로피를 사용할 수 있습니다 : 여기

는 디폴트 값을 매개 변수로 전달의 예 문자열에 따옴표와 아포스트로피가 모두 필요하다면 예를 들어 문자열 또는 구두점에 대한 변수.

0

변수 또는 매개 변수로 값을 전달할 수 있습니다.

나는 이것을 할 수있는 훨씬 좋은 방법이있을 것이라고 확신하지만, 지금 당장 생각할 수는 없다.

<xsl:when test='contains(ct-type/cats, "Cmm&apos;l") or contains(ct-type/cats, "rst")'> 

당신 경우 :

<xsl:template match="doc"> 
    <xsl:param name="cat_type_1"> 
     <xsl:text>Cmm'l</xsl:text> 
    </xsl:param> 
    <xsl:param name="cat_type_2"> 
     <xsl:text>rst</xsl:text> 
    </xsl:param> 
    <xsl:if test="contains(ct-type/cats, $cat_type_1) or contains(ct-type/cats, $cat_type_2)"> 
     <Terms>Example</Terms> 
    </xsl:if> 
    </xsl:template>