在datapower xslt的响应中,在CDATA标记中生成xml作为字符串

在datapower xslt的响应中,在CDATA标记中生成xml作为字符串,xml,xslt,ibm-datapower,Xml,Xslt,Ibm Datapower,我在使用dp:serialize和populateCDATA标记作为datapower中的响应时遇到问题。 问题1。无法使用dp:serialize函数将xml转换为字符串。 问题2。Cdata标记无法在proble和soapui响应页面中看到 下面是将xml转换为字符串并填充到CDATA标记中的xslt <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://

我在使用dp:serialize和populateCDATA标记作为datapower中的响应时遇到问题。 问题1。无法使用dp:serialize函数将xml转换为字符串。 问题2。Cdata标记无法在proble和soapui响应页面中看到

下面是将xml转换为字符串并填充到CDATA标记中的xslt

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2005/xpath-functions"
  xmlns:dp="http://www.datapower.com/extensions">

    <xsl:output  method="xml" cdata-section-elements="ConfigurationXML"/>
    <xsl:variable name="Configxml" select="document('Config.xml')" />

    <xsl:template match="/">
     <xsl:variable name="Configstring">
     <dp:serialize select="$Configxml"/></xsl:variable>

     <Response>
       <ConfigurationXML>
                        <xsl:text disable-output-escaping="yes">&amp;lt;![CDATA[</xsl:text>
    <xsl:copy-of select="$Configstring"/> 
    <xsl:text disable-output-escaping="yes">]]&amp;gt;</xsl:text>       
                           </ConfigurationXML>         
      </Response>


    </xsl:template>
</xsl:stylesheet>

&;书信电报;![CDATA[
]]&;燃气轮机;

必须指定
dp
名称空间前缀是XSL语言的扩展,否则DataPower XSLT处理器将
视为普通XML数据,而不是扩展元素

<xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:dp="http://www.datapower.com/extensions"
    extension-element-prefixes="dp">

在调用序列化数据时,使用下面代码的值,而不是使用的副本,我在这里动态调用了请求,而不像从文件中调用

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:fn="http://www.w3.org/2005/xpath-functions"
xmlns:dp="http://www.datapower.com/extensions">
<xsl:output method="xml" cdata-section-elements="ConfigurationXML"/>
<xsl:template match="/">
<xsl:variable name="Configstring1">
<xsl:copy-of select="."/>
</xsl:variable>
<xsl:variable name="Configstring2">
<dp:serialize select="$Configstring1"/>
</xsl:variable>
<Response>
<ConfigurationXML>
<xsl:text disable-output-escaping="yes">&amp;lt;![CDATA[</xsl:text>
<xsl:value-of select="$Configstring2"/>
<xsl:text disable-output-escaping="yes">]]&amp;gt;</xsl:text>
</ConfigurationXML>
</Response>
</xsl:template>
</xsl:stylesheet>

&;书信电报;![CDATA[
]]&;燃气轮机;
输出:

<?xml version="1.0" encoding="UTF-8"?>
<Response xmlns:xs="http://www.w3.org/2001/XMLSchema" 
xmlns:fn="http://www.w3.org/2005/xpath-functions" 
xmlns:dp="http://www.datapower.com/extensions">
 <ConfigurationXML>&lt;![CDATA[]]&gt;</ConfigurationXML>
</Response>

![CDATA[]

您在ConfigurationXML输出元素中看到了什么?![CDATA[]此代码给出以下输出:奇怪,并且没有生成日志?比如说dp xmlns的声明可能不正确?
Yes Stefan在哪里,它被声明为xmlns:dp=“”>谢谢bjimba,我知道了这一点并实现了它,它工作正常。但在序列化之后,它也是以xml而不是字符串的形式出现的。您知道为什么吗?序列化后的实际输出:节点集:DP test.com预期:string:DPtest.com。我需要字符串数据类型与输入进行比较。您如何检查输出?您是在检查实际返回的内容,还是在查看DataPower探测器?如果您使用的是探测,序列化数据看起来就像是XML,即使它是字符串也是如此。我正在查看SOAP UI中的响应。基本上,我的意图是需要比较请求cdata中的xml和datapower configxml。两者是否相同?