karthikin Posted June 30, 2011 Share Posted June 30, 2011 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 More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.