2017-03-23 21 views
0

xsltメディエーターを使用してxmlをotherに変換したいと考えています。 私たちはこの石鹸メッセージを持っています。wso2 xslt名前空間を持つメディエーター

このメッセージが結果として必要です。

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

私たちは、このXSLTテンプレート

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

を使用しているしかし、それは動作しません。

誰でもお手伝いできますか?

ありがとうございます。

答えて

0

あなたの2つのファイルは同じです。私は考えて右だ場合しかし、あなたはそう下記しようとした場合

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

<message>Data messsage to send</message> 

を変更したい:

コードが更新質問を反映するように編集されています)

<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> 

マイケルケイが叫ぶでしょうあなたのために使用disable-output-escaping

+0

すみません。 <![CDATA [メンズセールデータ]]> – Hiro

+0

ありがとうございました。しかし、xmlタグをmessage xmlタグに含めると、このテンプレートはタグを削除し、<![CDATA [ data]]> ..のようにタグの内容のみを表示します。 。<![CDATA [ data]> .... – Hiro

+0

私がxsl:value-ofの代わりにxsl:copy-ofを使用すると、われわれが望むことができます。あなたには素早い答えとあなたのアテンションに感謝します。 – Hiro

関連する問題