Monday, October 31, 2016

XSLT CDATA write and read

----------------------------------------
Exemplo inserindo CDATA

----------------------------


<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="xml" cdata-section-elements="request-item-list" version="1.0" indent="yes"/>
    <xsl:strip-space elements="*" />
    <xsl:template match="/">
        <xsl:variable name="BODY" select="/ROOT/BODY/data"></xsl:variable>
        <mes:payload>
            <xsl:text disable-output-escaping="yes"><![CDATA[<]]></xsl:text>![CDATA[<xsl:value-of select="concat('&lt;','request-item-list','&gt;')" />
            <xsl:for-each select="$BODY/request_item_list" >
                <xsl:value-of select="concat('&lt;','item','&gt;')" />
                <xsl:value-of select="concat('&lt;area-code&gt;',./area_code,'&lt;area-code&gt;')" />
                <xsl:value-of select="concat('&lt;lob&gt;',./lob,'&lt;lob&gt;')" />
                <xsl:value-of select="concat('&lt;product-code&gt;',./product_code,'&gt;product-code&gt;')" />       
                <xsl:value-of select="concat('&lt;','/item','&gt;')" />
            </xsl:for-each>]]<xsl:text disable-output-escaping="yes"><![CDATA[>]]></xsl:text>
        </mes:payload>
    </xsl:template>
</xsl:stylesheet>

----------------------------------------
Obtendo CDATA
-------------------------------------

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output omit-xml-declaration="yes" />
    <xsl:variable name="PAYLOAD" select="/ROOT/BODY/OUTPUT/*[local-name()='Envelope']/*[local-name()='Body']/*[local-name()='executeSyncResponse']/*[local-name()='message']/*[local-name()='payload']" />
    <xsl:template match="/">
        <OUTPUT>
            <xsl:value-of select="$PAYLOAD" disable-output-escaping="yes" />
        </OUTPUT>   
    </xsl:template>
</xsl:stylesheet>


No comments:

Blog Archive