I am trying to convert SOAP response xml into another xml. So that i can use OracleXMLSave to save my xml easily based on table and column names.
I want to convert below soap response xml .
<?xml version="1.0" encoding="UTF-8"?>
<s:Envelope xmlns:s="http://ift.tt/18hkEkn" xmlns:a="http://ift.tt/HKXHai">
<s:Header>
<a:Action s:mustUnderstand="1">http://ift.tt/1rToUMv;
<h:Is_x0020_Secure_x0020_Service_x0020_Authedicated xmlns:h="http://tempuri.org/" s:mustUnderstand="1">true</h:Is_x0020_Secure_x0020_Service_x0020_Authedicated>
</s:Header>
<s:Body>
<ResponseMessage xmlns="http://tempuri.org/">
<DC_x0020_response>
<![CDATA[&lt;![CDATA[&lt;?xml version=&quot;1.0&quot;?&gt;&lt;DCResponse&gt;
&lt;Status&gt;Success&lt;/Status&gt;
&lt;Authentication&gt; &lt;Status&gt;Success&lt;/Status&gt; &lt;Token&gt;5edb2f9a-267d-4f48-97b2-f44ad10d5240&lt;/Token&gt; &lt;/Authentication&gt;
&lt;ResponseInfo&gt; &lt;ApplicationId&gt;1800985&lt;/ApplicationId&gt; &lt;SolutionSetInstanceId&gt;108b2e5d-2e7e-40a8-8fc6-f5b4ca36d0ab&lt;/SolutionSetInstanceId&gt; &lt;/ResponseInfo&gt;
&lt;ContextData&gt;
&lt;Field key=&quot;InquirySource&quot;&gt;:Node:101:42216&#163;@WEST@*FraudScore_Group1_RTVRRequired|&lt;/Field&gt;
&lt;Field key=&quot;ExternalApplicationId&quot;&gt;100014317&lt;/Field&gt;
&lt;Field key=&quot;TURFXML&quot;&gt; &lt;
![CDATA[ &lt;
CreditReport&gt; &lt;
&lt;NameSegment&gt; &lt;Length&gt;03&lt;/Length&gt; &lt;SegmentTag&gt;N01&lt;/SegmentTag&gt; &lt;ConsumerName1FieldLength&gt;22&lt;/ConsumerName1FieldLength&gt; &lt;ConsumerName1&gt;MR RAGHURAM VENKATESAN&lt;/ConsumerName1&gt; &lt;DateOfBirthFieldLength&gt;08&lt;/DateOfBirthFieldLength&gt; &lt;DateOfBirth&gt;04061975&lt;/DateOfBirth&gt; &lt;GenderFieldLength&gt;01&lt;/GenderFieldLength&gt; &lt;Gender&gt;2&lt;/Gender&gt; &lt;FID&gt;0019009142&lt;/FID&gt; &lt;/NameSegment&gt; &lt;/CreditReport&gt;]]&gt; &lt;/Field&gt; &lt;/ContextData&gt;&lt;/DCResponse&gt;]]&gt;]]>
</DC_x0020_response>
</ResponseMessage>
</s:Body>
</s:Envelope>
My output response xml should be like below
<CreditReport>
<TR_CIBIL_TURF_PNS>
<TR_CIBIL_TURF_PN>
<SZNAME>MR RAGHURAM VENKATESAN </SZNAME>
<SZDOB>12031974</SZDOB>
<SZGENDER>2</SZGENDER>
</TR_CIBIL_TURF_PN>
</TR_CIBIL_TURF_PNS>
</CreditReport>
I have tried using below xslt to convert my soap to desire response. But its not working. Please help
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://ift.tt/tCZ8VR"
xmlns:s="http://ift.tt/18hkEkn"
xmlns:ns2="http://tempuri.org/" >
<xsl:template name="responseTemplate">
<xsl:element name="CreditReport">
<xsl:element name="TR_CIBIL_TURF_PNS">
<xsl:for-each
select="s:Envelope/s:Body/ns2:ResponseMessage/DC_x0020_response/DCResponse/ContextData/Field[@key ='TURFXML']/CreditReport/NameSegment">
<xsl:element name="TR_CIBIL_TURF_PN">
<xsl:element name="SZNAME">
<xsl:value-of select="concat(ConsumerName1,' ',ConsumerName2,' ',ConsumerName3,' ',ConsumerName4,' ',ConsumerName5)"/>
</xsl:element>
<xsl:element name="SZDOB">
<xsl:value-of select="DateOfBirth"/>
</xsl:element>
<xsl:element name="SZGENDER">
<xsl:value-of select="Gender"/>
</xsl:element>
</xsl:element>
</xsl:for-each>
</xsl:element>
No comments:
Post a Comment