将CDATA标记添加到incomig XMLelement

时间:2017-06-02 11:10:43

标签: xslt

我在传入的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>

0 个答案:

没有答案