Jump to content

[solved]XML To XML Uisng XSLT


karthikin
 Share

Recommended Posts

Hi Guys, I want to change my xml format in to another format using XSLT. I have manged to change the format i have problem in getting the type of email and the value of email. Please help me guys..This is my original xml file:

<?xml version="1.0" encoding="windows-1250"?><CONTACTS>    <CONTACT>        <FirstName>Arun_niit</FirstName>        <LastName>Arun_niit</LastName>        <EMail>nura_ice@yahoo.co.in</EMail>    </CONTACT>    <CONTACT>        <FirstName>FodenBen'</FirstName>        <LastName>Ben' Foden</LastName>        <URL>http://www.facebook.com/profile.php?id=100002440474277</URL>    </CONTACT>    <CONTACT>        <FirstName>GhorbelMahmoud</FirstName>        <LastName>Mahmoud Ghorbel</LastName>        <EMail>mahmoud.ghorbel@alcatel-lucent.com</EMail>    </CONTACT>    <CONTACT>        <FirstName>keyankarthik</FirstName>        <LastName>karthik keyan</LastName>        <EMail>karthycse@yahoo.co.in</EMail>    </CONTACT>    <CONTACT>        <FirstName>Rangarajkarthik</FirstName>        <LastName>karthik Rangaraj</LastName>        <EMail>kart2006@gmail.com</EMail>        <EMail>karthikrangaraj@yahoo.com</EMail>    </CONTACT>    <CONTACT>        <FirstName>ReddyAkky</FirstName>        <LastName>Akky Reddy</LastName>        <EMail>akkireddych@gmail.com</EMail>    </CONTACT>    <CONTACT>        <FirstName>SandfordFrankie</FirstName>        <LastName>Frankie Sandford</LastName>        <URL>http://www.facebook.com/FrankieSandfordApprovedPage</URL>    </CONTACT>    <CONTACT>        <FirstName>TheSatsRochelle</FirstName>        <LastName>Rochelle TheSats</LastName>        <URL>http://www.facebook.com/profile.php?id=100002487211054</URL>    </CONTACT>    <CONTACT>        <FirstName>KumarVeera</FirstName>        <LastName>Veera_Kumar</LastName>        <EMail>KUMARg_81@yahoo.com</EMail>    </CONTACT></CONTACTS>

I want the output like this:

<?xml version="1.0" encoding="UTF-8"?><CONTACTS><CONTACT><PDE-Identity>N65539</PDE-Identity><FirstName>Arun_niit</FirstName><LastName>Arun_niit</LastName><Facebook-ID/><EMail><Type="yahoo" Value="nura_ice@yahoo.co.in"/></EMail></CONTACT><CONTACT><PDE-Identity>N65546</PDE-Identity><FirstName>FodenBen'</FirstName><LastName>Ben' Foden</LastName><URL>http://www.facebook.com/profile.php?id=100002440474277</URL><Facebook-ID>100002440474277</Facebook-ID><EMAILS/></CONTACT><CONTACT><PDE-Identity>N65553</PDE-Identity><FirstName>GhorbelMahmoud</FirstName><LastName>Mahmoud Ghorbel</LastName><Facebook-ID/><EMail><Type="alcatel-lucent" Value="mahmoud.ghorbel@alcatel-lucent.com"/></EMail><CONTACT><PDE-Identity>N65567</PDE-Identity><FirstName>Rangarajkarthik</FirstName><LastName>karthik Rangaraj</LastName><Facebook-ID/><EMail><Type="gmail" Value="kart2006@gmail.com"/><Type="yahoo" Value="karthikrangaraj@yahoo.com"/></EMail></CONTACT></CONTACTS>

This is my xsl file:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">    <xsl:output method="xml" indent="yes"/>    <xsl:strip-space elements="*"/>    <xsl:template match="node()|@*">        <xsl:copy>            <xsl:apply-templates select="node()|@*"/>        </xsl:copy>    </xsl:template>    <xsl:template match="CONTACT">        <xsl:copy>               <PDE-Identity>               <xsl:value-of select="generate-id(.)"/>                </PDE-Identity>              <xsl:copy-of select="FirstName|LastName|URL"/>              <Facebook-ID><!-- To extract the ID value from URL/Email -->            <xsl:choose>                <xsl:when test="URL">                    <xsl:value-of select="substring-after(URL,'?id=')"/>                </xsl:when>                <xsl:otherwise>                   <!-- <xsl:value-of select="substring-before(EMail[1],'@')"/>-->                </xsl:otherwise>            </xsl:choose>        </Facebook-ID>            <EMAIL>                <Type = "" <xsl:value-of select="substring-before(                    substring-after(.,'@'),                    '.')"/>                        <value ="" <xsl:value-of select="."/>                        </EMAIL>        </xsl:copy>    </xsl:template></xsl:stylesheet>

In my xsl file, i have problem with the extracting the email type and vales in the right format. Please help me guys. Thank you.

Edited by karthikin
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...