Subject: RE: [xsl] How to use two xmls for comparing and extracting values From: Mukul Gandhi <mukulw3@xxxxxxxxx> Date: Thu, 11 Sep 2003 19:09:25 -0700 (PDT) |
Hi Dipesh, To my best understanding, below is the required XSL.. <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="text" version="1.0" encoding="UTF-8" indent="yes"/> <xsl:variable name="Schema" select="document('colHeader.xml')"/> <xsl:template match="/"> <xsl:if test="$Schema/Tables/Table/@Name = 'Root' "> <xsl:for-each select="Root/@*"> <xsl:if test="name(.) = $Schema/Tables/Table/Column[1]/@name"> `<xsl:value-of select="."/> </xsl:if> <xsl:if test="name(.) = $Schema/Tables/Table/Column[2]/@name"> `<xsl:value-of select="."/> </xsl:if> </xsl:for-each> </xsl:if> </xsl:template> </xsl:stylesheet> Regards, Mukul --- Dipesh Khakhkhar <dkhakhkh@xxxxxxxxxxxxxxx> wrote: > Hi, > > Thanks a lot for replying. > > Well you have swapped the file. > > The following is in the input file from where i have > to get the attribute > values for some node (here Root node is considered) > > <Root att1="val1" att2="val2" > > > And I am having a intermediate file like this. > <?xml version="1.0" encoding="UTF-8"?> > <Tables> > <Table Name="Root"> > <Column name="att1"/> > <Column name="att2"/> > </Table> > </Tables> > > I am to match the name of the > Tables/Table@Name='Root' like this first and > then if its the same then compare the > attritube names of Input file i.e. att1 and att2 > with the values in the > attributes of node Column of the node Table whose > name is Root > > i.e. if value of the name attribute of Column node > in Table node having > attribute name="Root" is same as 'name of the > attribute of Root node in the > input then write the value of attribute of that node > from the input file. > > I hope I have not confused you. I am stuck to do > this. Any help would be > highly appreciated. > > Regards, > Dipesh > > > Date: Thu, 11 Sep 2003 09:38:54 -0700 (PDT) > From: Mukul Gandhi <mukulw3@xxxxxxxxx> > Subject: RE: [xsl] How to use two xmls for comparing > and extracting values > > Hi Dipesh, > Your problem description seems a bit ambiguous to > me. Hope you can explain more clearly.. To my best > understanding, you need an XSL like below -- > > <?xml version="1.0" encoding="UTF-8"?> > <xsl:stylesheet version="1.0" > xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> > <xsl:output method="text" version="1.0" > encoding="UTF-8" indent="yes"/> > > <xsl:variable name="Schema" > select="document('colHeader.xml')"/> > <xsl:template match="/"> > <xsl:variable name="x" > select="Table/Column[1]/@name" /> > <xsl:variable name="y" > select="Table/Column[2]/@name" /> > <xsl:for-each select="$Schema/Root/@*"> > <xsl:if test="name(.) = $x"> > `<xsl:value-of select="." /> > </xsl:if> > <xsl:if test="name(.) = $y"> > `<xsl:value-of select="." /> > </xsl:if> > </xsl:for-each> > </xsl:template> > </xsl:stylesheet> > > The colHeader.xml file will contain -- > <?xml version="1.0" encoding="UTF-8"?> > <Root att1="val1" and att2="val2" /> > > And, the XML file, to which you will apply the above > XSL will contain -- > <?xml version="1.0" encoding="UTF-8"?> > <Table Name="Root"> > <Column name="att1"/> > <Column name="att2"/> > </Table> > > > Regards, > Mukul > > > XSL-List info and archive: > http://www.mulberrytech.com/xsl/xsl-list > __________________________________ Do you Yahoo!? Yahoo! SiteBuilder - Free, easy-to-use web site design software http://sitebuilder.yahoo.com XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] How to use two xmls for c, Dipesh Khakhkhar | Thread | [xsl] Noob here: anyone using XMLsp, Barry van Weldam |
Re: [xsl] newbie needs help, Brian Benson | Date | [xsl] how to: Conditionally call ne, SANWAL, ABHISHEK (HP |
Month |