使用XSLT替换SOAP Body中的CDATA标记内的文本

时间:2017-03-08 12:01:17

标签: xml xslt

我需要能够使用XSLT

替换soap body的CDATA标签内的一些文本

XML在

之下
<env:Envelope xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <env:Header/>
   <env:Body env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
      <Response>
         <result xsi:type="xsd:string"><![CDATA[<?xml version="1.0" encoding="UTF-8" standalone="no"?><Extract authenticated="0"><ErrorList><Error>1</Error></ErrorList></Extract>]]></result>
      </Response>
   </env:Body>
</env:Envelope> 

我希望能够替换CDATA标记内的数据,删除XML声明版本并在开头和结尾添加新标记

  

&#34;提取主要&#34;

<ExtractMain><Extract authenticated="0"><ErrorList><Error>1</Error></ErrorList></Extract></ExtractMain>

我开始尝试下面的东西,但我不熟悉XSLT,这对我来说似乎相当复杂

<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

    <xsl:template match="@*|node()">
        <xsl:copy>
            <xsl:apply-templates select="@*|node()" />
        </xsl:copy>
    </xsl:template>

    <xsl:template match="//*[local-name()='Extract']">
        // what do i do?
    </xsl:template>

</xsl:stylesheet>

0 个答案:

没有答案