XSLT转换cdata部分

时间:2017-01-10 22:29:52

标签: xml xslt

我需要对输入xml进行xslt转换,使用cdata section.i想删除部分消息并保留其他部分。请找到附加的输入和预期输出xml.can你请帮帮我。任何内容都在message-body标签应该是xslt的输出,它将有一个cdata部分。

    Input XML :

    <ns2:esb-message xmlns:ns2="http://messagev2.esb.company.com/">
        <header>
            <identity/>
            <message-date-time>2017-01-10T13:19:39</message-date-time>
            <esb-environment>DEV</esb-environment>
        </header>
        <body>
            <request>
                <esb-metadata>
                    <user-id>Cube</user-id>
                </esb-metadata>
                <message-body>
                    <web:Custom xmlns:web="http://webservices.com/">
                        <aAddRoot>1</aAddRoot>
                        <aUseResultEncoding>1</aUseResultEncoding>
                        <aXMLInput><![CDATA[<rate lob="15">
        <heading>
            <program parent_id="1001" program_id="1" program_ver=""/>
        </heading>
    </rate>]]></aXMLInput>
                    </web:Custom>
                </message-body>
            </request>
        </body>
    </ns2:esb-message>

预期产出:

                <web:Custom xmlns:web="http://webservices.com/">
                    <aAddRoot>1</aAddRoot>
                    <aUseResultEncoding>1</aUseResultEncoding>
                    <aXMLInput><![CDATA[<rate lob="15">
    <heading>
        <program parent_id="1001" program_id="1" program_ver=""/>
    </heading>
</rate>]]></aXMLInput>
                </web:Custom>

1 个答案:

答案 0 :(得分:0)

不确定您到底遇到了什么问题。尝试:

XSLT 1.0

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:web="http://webservices.com/">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes" cdata-section-elements="aXMLInput"/>
<xsl:strip-space elements="*"/>

<xsl:template match="/">
    <xsl:copy-of select="//web:Custom"/>
</xsl:template>

</xsl:stylesheet>