需求基本上是将整个XML内容包装到带有CDATA的XML标记中,在下面输入XML
<?xml version="1.0" encoding="UTF-8"?>
<ns1:outSystemWS xmlns:ns1="http://abcd.co.za">
<ns1:in0>
<PQR>
<STU>
<TEST1>123</TEST1>
<TEST2>XYZ</TEST2>
</STU>
<req>
<TEST3>DEF</TEST3>
<TEST4>GHI</TEST4>
</req>
</PQR>
</ns1:in0>
</ns1:outSystemWS>
预期输出:
<?xml version="1.0" encoding="UTF-8"?>
<ns1:outSystemWS xmlns:ns1="http://abcd.co.za">
<ns1:in0><![CDATA[<PQR>
<STU>
<TEST1>123</TEST1>
<TEST2>XYZ</TEST2>
</STU>
<req>
<TEST3>DEF</TEST3>
<TEST4>GHI</TEST4>
</req>
</PQR>]]>
</ns1:in0>
</ns1:outSystemWS>
我在XSLT以下尝试过,但是没有运气!!请帮助
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="ns:outSystemWS[*]" xmlns:ns="http://abcd.co.za">
<xsl:copy>
<xsl:text disable-output-escaping="yes"><![CDATA[</xsl:text>
<xsl:copy-of select="." />
<xsl:text disable-output-escaping="yes">]]></xsl:text>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
serialize
函数的XSLT 3可以做到: