2017-03-23 3 views
0

wir wollen einen xslt mediator verwenden, um ein xml in anderen zu transformieren. wir haben diese Seife Nachricht.wso2 xslt mediator mit namespaces

<?xml version = "1.0" encoding="ISO-8859-1"?> 
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.es"> 
    <soapenv:Header/> 
    <soapenv:Body> 
     <ws:reception> 
     <ws:xml> 
      <message>Data messsage to send</message> 
     </ws:xml> 
     </ws:reception> 
    </soapenv:Body> 
</soapenv:Envelope> 

Und wir wollen diese Nachricht als Ergebnis.

<?xml version = "1.0" encoding="ISO-8859-1"?> 
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.es"> 
    <soapenv:Header/> 
    <soapenv:Body> 
     <ws:reception> 
     <ws:xml> 
      <![CDATA[<message>Data messsage to send]]></message> 
     </ws:xml> 
     </ws:reception> 
    </soapenv:Body> 
</soapenv:Envelope> 

wir sind mit dieser XSLT-Vorlage

<?xml version = "1.0" encoding = "ISO-8859-1"?> 
<xsl:stylesheet version = "1.0" xmlns:xsl = "http://www.w3.org/1999/XSL/Transform"> 

    <xsl:template match = "//ws:xml"> 
    <xsl:copy> 
     <xsl:text disable-output-escaping="yes"> &lt;![CDATA[</xsl:text> 
      <xsl:copy-of select="*"/> 
     <xsl:text disable-output-escaping="yes"> ]]&gt;</xsl:text> 
    </xsl:copy> 
    </xsl:template> 
</xsl:stylesheet> 

Aber es funktioniert nicht.

kann uns jemand helfen ??

Vielen Dank im Voraus.

Antwort

0

Ihre zwei Dateien sind identisch. Aber wenn ich recht in der Annahme Sie

<message>Data messsage to send</message> 

in

<message><![CDATA[Data messsage to send]]></message> 

ändern, wenn so die folgenden versuchen:

(Code bearbeitet wurde aktualisiert Frage zu reflektieren)

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

<xsl:template match="message"> 
    <xsl:text disable-output-escaping="yes"> &lt;![CDATA[</xsl:text> 
    <message> 
     <xsl:value-of select="//message"/> 
    </message> 
    <xsl:text disable-output-escaping="yes"> ]]&gt;</xsl:text>  
</xsl:template> 

Seien Sie jedoch gewarnt, Michael Kay wird schreien Sie für die Verwendung disable-output-escaping

+0

tut mir leid. Wir wollen Menssagedaten]]> – Hiro

+0

ok danke. Wenn wir jedoch ein XML-Tag in das XML-Tag der Nachricht einfügen, löscht diese Vorlage das Tag und zeigt nur den Inhalt des Tags, wie Daten]]> .., sollte es zeigen .... . Daten]]> .... – Hiro

+0

ok, wenn ich xsl: copy-of anstelle von xsl: value-of verwenden, haben wir was wir wollen. Vielen Dank für Ihre schnelle Antwort und Ihre Aufmerksamkeit. – Hiro

Verwandte Themen