我需要对输入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>
答案 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>