2013-09-26 6 views
1

XSL을 사용하여 속성 값의 공백을 보존 할 수 없습니다.요소 속성 값에서 공백을 유지하도록 내 XSL을 얻는 방법

<xsl:template match="FUNCTION_CALL"> 
    <xsl:value-of select="@name"/><xsl:apply-templates/> 
</xsl:template> 

<xsl:template match="FUNCTION_CALL[@ALIAS]"> 
    <xsl:value-of select="@name"/><xsl:apply-templates/> AS <xsl:value-of select="@ALIAS"/> 
</xsl:template> 

<xsl:template match="ARGUMENTS"> 
(
<xsl:for-each select="COLUMN | CONSTANT"> 
    <xsl:if test="position()&gt;1">, </xsl:if> 
    <xsl:apply-templates select="."/> 
</xsl:for-each> 
) 
</xsl:template> 

<xsl:template match="CONSTANT[@type='CHAR']" xml:space="preserve"> 
    '<xsl:value-of select="@value"/>' 
</xsl:template> 
: 나는 내가 가진 XSL은

SUBSTR('', 1, 8) 

을 얻고,

SUBSTR('   ', 1, 8) 

을하지만 : I는 다음과 같습니다 XML이 :

<FUNCTION_CALL name="SUBSTR"> 
    <ARGUMENTS> 
      <CONSTANT type="CHAR" value="  "/> 
      <CONSTANT type="NUMERIC" value="1"/> 
      <CONSTANT type="NUMERIC" value="8"/> 
    </ARGUMENTS> 
</FUNCTION_CALL> 

을 그리고 렌더링 할 필요가

시도했습니다. xml:space="preserve" (i n 샘플 코드), <xsl:preserve-space elements="CONSTANT" /><xsl:output method="html" indent="yes"/>이지만 공백으로 출력을 렌더링 할 수 없습니다. 나는 XSL과 XSLT에서 비교적 초보자이며 도움을받을 수있다.

답변

0

XML의 attribute value normalization을 피해야 할 수도 있습니다.이 프로세스는 속성 값의 공백을 처리하고 수행해야하는 준수 구문 분석기입니다. 속성의 공백을 이스케이프 처리하여이를 방지 할 수 있습니다 (예 : value="&#32;&#32;&#32;&#32;&#32;&#32;&#32;"

관련 문제