我在传入的SOAP消息下面有这个。我需要为名为“<Ser>
”的复杂元素之一添加CDATA标记。使用下面的xslt但它不起作用。
请告诉我xslt中的问题。
传入的SOAP消息:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:acc="http://example.com">
<soapenv:Header/>
<soapenv:Body>
<acc:AccDetail>
<Ser>
<Ser>
</acc:AccDetail>
</soapenv:Body>
</soapenv:Envelope>
预期产出:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:acc="http://example.com">
<soapenv:Header/>
<soapenv:Body>
<acc:AccDetail>
<![CDATA[<Ser>
<Ser>]]>
</acc:AccDetail>
</soapenv:Body>
</soapenv:Envelope>
我在XSLT下面使用它,但它不起作用。 XSLT:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:dp="http://www.datapower.com/extensions"
xmlns:acc="http://example.com"
extension-element-prefixes="dp"
>
<xsl:output omit-xml-declaration="yes" cdata-section-elements="ser"/>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="ser">
<xsl:copy>
<xsl:copy-of select="@*"/>
<dp:serialize omit-xml-decl="yes" select="*"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>