Table name / XML Root : contact
save as c.xml
xsltproc -o Contacts.xml contacts.xsl c.xml
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="/">
<contacts>
<xsl:for-each select="xml/contact">
<contact>
<xsl:attribute name="name">
<xsl:value-of select="Name"/>
</xsl:attribute>
<xsl:if test="(Phone_1_Type = 'Home')">
<xsl:attribute name="number">
<xsl:value-of select="Phone_1_Value"/>
</xsl:attribute>
</xsl:if>
<xsl:if test="(Phone_1_Type = 'Mobile')">
<xsl:attribute name="mobile">
<xsl:value-of select="Phone_1_Value"/>
</xsl:attribute>
</xsl:if>
<xsl:if test="(Phone_2_Type = 'Home')">
<xsl:attribute name="number">
<xsl:value-of select="Phone_2_Value"/>
</xsl:attribute>
</xsl:if>
<xsl:if test="(Phone_2_Type = 'Mobile')">
<xsl:attribute name="mobile">
<xsl:value-of select="Phone_2_Value"/>
</xsl:attribute>
</xsl:if>
<xsl:if test="(Phone_3_Type = 'Home')">
<xsl:attribute name="number">
<xsl:value-of select="Phone_3_Value"/>
</xsl:attribute>
</xsl:if>
<xsl:if test="(Phone_3_Type = 'Mobile')">
<xsl:attribute name="mobile">
<xsl:value-of select="Phone_3_Value"/>
</xsl:attribute>
</xsl:if>
</contact>
</xsl:for-each>
</contacts>
</xsl:template>
</xsl:stylesheet>