2016-07-11 16 views
1

Ich habe Problem mit dp: serialisieren und CDATA-Tag als Antwort in Datapower füllen. Problem 1. Nicht in der Lage, aus xml mit der Funktion dp: serialize in eine Zeichenfolge zu konvertieren. Ausgabe 2. Cdata-Tag nicht in der Lage in proble und soapui Antwort-Seite zu sehen, wie < kommen! [CDATA [sometext]] >Produzieren Sie XML als Zeichenfolge in CDATA-Tag in Antwort in Datapower xslt

Hier ist Xslt die xml-String und bevölkert in CDATA-Tag umwandeln.

<?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> 
+0

und was * sehen * Sie im ConfigurationXML-Ausgabeelement? –

+0

< [CDATA []] > Mike

+0

! dieser Code unten Ausgang gibt: \t \t . dp: Serialisierungsfunktion funktioniert nicht richtig. Habe ich hier etwas übersehen? – Mike

Antwort

1

Sie müssen angeben, dass der dp Namespacepräfix eine Erweiterung der XSL-Sprache ist, da sonst der Data XSLT-Prozessor behandelt <dp:serialize> als normale XML-Daten, und kein Verlängerungselement.

<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"> 
+0

Danke bjimba Ich habe das erfahren und umgesetzt, es funktioniert gut. aber nach der Serialisierung kommt es auch als XML nicht als String. weißt du, warum? – Mike

+0

tatsächliche Ausgabe nach Serialisierung: Knotenmenge: DP http://test.com erwartet: string: DP http://test.com. Ich brauche den String-Datentyp, um ihn mit der Eingabe zu vergleichen. – Mike

+0

Wie überprüfen Sie Ihre Ausgabe? Überprüfst du, was gerade zurückgegeben wird, oder schaust du auf die DataPower-Sonde? Wenn Sie die Sonde verwenden, sehen serialisierte Daten * wie XML aus, auch wenn es sich um eine Zeichenfolge handelt. – bjimba