2017-01-10 14 views
0

cdata section.iで入力xmlのxslt変換を行う必要があります。メッセージの一部を削除して他のものを保持したいと思います。添付された入力と期待される出力xml.canを見つけてください。メッセージ本文タグ付きのコンテンツはxsltの出力でなければならず、cdataセクションを持ちます。XSLT変換cdataセクション

Input XML : 

    <ns2:esb-message xmlns:ns2="http://messagev2.esb.company.com/"> 
     <header> 
      <identity/> 
      <message-date-time>2017-01-10T13:19:39</message-date-time> 
      <esb-environment>DEV</esb-environment> 
     </header> 
     <body> 
      <request> 
       <esb-metadata> 
        <user-id>Cube</user-id> 
       </esb-metadata> 
       <message-body> 
        <web:Custom xmlns:web="http://webservices.com/"> 
         <aAddRoot>1</aAddRoot> 
         <aUseResultEncoding>1</aUseResultEncoding> 
         <aXMLInput><![CDATA[<rate lob="15"> 
     <heading> 
      <program parent_id="1001" program_id="1" program_ver=""/> 
     </heading> 
    </rate>]]></aXMLInput> 
        </web:Custom> 
       </message-body> 
      </request> 
     </body> 
    </ns2:esb-message> 

予想される出力:これで

   <web:Custom xmlns:web="http://webservices.com/"> 
        <aAddRoot>1</aAddRoot> 
        <aUseResultEncoding>1</aUseResultEncoding> 
        <aXMLInput><![CDATA[<rate lob="15"> 
    <heading> 
     <program parent_id="1001" program_id="1" program_ver=""/> 
    </heading> 
</rate>]]></aXMLInput> 
       </web:Custom> 

答えて

0

わからない正確にあなたが持っている問題。試してみてください:

XSLT 1.0

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
xmlns:web="http://webservices.com/"> 
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes" cdata-section-elements="aXMLInput"/> 
<xsl:strip-space elements="*"/> 

<xsl:template match="/"> 
    <xsl:copy-of select="//web:Custom"/> 
</xsl:template> 

</xsl:stylesheet>