2017-01-10 3 views
0

Ich muss xslt Transformation für eine Eingabe XML mit cdata section.i tun möchte einige Teile der Nachricht zu entfernen und andere zu halten.Bitte finden Sie die beigefügte Eingabe und erwartete Ausgabe xml.can bitte helfen Sie mir. Jeder Inhalt mit dem Tag message-body sollte die Ausgabe von xslt sein und einen cdata-Abschnitt haben.XSLT Transformation cdata Abschnitt

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> 

Erwartete Ausgabe:

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

Antwort

0

nicht sicher, wo genau haben Sie damit Probleme. Versuchen:

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>