Jump to content

[solved]XML To XML Uisng XSLT


karthikin

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.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...