Subject: [xsl] Merging common tags of 2 xml files From: "varun bhatnagar varun292006@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Wed, 6 Aug 2014 08:33:31 -0000 |
Hi, I have two xml files. I am trying to transform them using xslt. The xml files are having few common tags. I want to merge them one below another by adding two attributes. I have written xsl file also, attributes are getting added but common elements are not getting merged as I want because of multiple occurrence of "version" tag. I am pasting my files below. Please help me out to get the Expected Output. *File1.xml* <?xml version="1.0" encoding="UTF-8"?> <config> <version> <input00 version ="11"/> <name00 name ="abc"/> </version> <version> <input00 version ="22"/> <name00 name ="def"/> </version> </config> *File2.xml* <?xml version="1.0" encoding="UTF-8"?> <config> <version> <input00 version ="2"/> <name00 name ="xyz"/> </version> <version> <input00 version ="3"/> <name00 name ="pqr"/> </version> <version> <input00 version ="4"/> <name00 name ="uvw"/> </version> </config> *Expected Output.xml* <config> <version Label="test" sNo="test"> <input00 version ="2"/> <name00 name ="xyz"/> </version> <version Label="test" sNo="test"> <input00 version ="3"/> <name00 name ="pqr"/> </version> <version Label="test" sNo="test"> <input00 version ="4"/> <name00 name ="uvw"/> </version> <version Label="test" sNo="test"> <input00 version ="11"/> <name00 name ="abc"/> </version> <version Label="test" sNo="test"> <input00 version ="22"/> <name00 name ="def"/> </version> </config> *file12.xsl* <xsl:stylesheet version="2.0" xmlns:xsl=" http://www.w3.org/1999/XSL/Transform"> <xsl:output method="xml" indent="yes"/> <xsl:template match="@*|node()"> <xsl:copy> <xsl:apply-templates select="@*|node()" /> </xsl:copy> </xsl:template> <xsl:template match="version"> <xsl:copy> <xsl:attribute name="Level"> <xsl:value-of select="'test'"></xsl:value-of> </xsl:attribute> <xsl:attribute name="sNo"> <xsl:value-of select="'test'"></xsl:value-of> </xsl:attribute> <xsl:for-each select="/config/version"> <xsl:apply-templates select="/config/version/node()"/> </xsl:for-each> <xsl:apply-templates select="document('File1.xml')/config/version/node()" /> </xsl:copy> </xsl:template> </xsl:stylesheet> Thanks, BR, Varun
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] want to sort and resolve , Wendell Piez wapiez@ | Thread | Re: [xsl] Merging common tags of 2 , Martin Honnen martin |
Re: [xsl] Question Michael Kay [use, L2L 2L emanuelallen@ | Date | Re: [xsl] Question Michael Kay [use, Michael Kay mike@xxx |
Month |