Subject: Re: [xsl] Move a section to different part of the XML tree based on child values From: "Mukul Gandhi" <gandhi.mukul@xxxxxxxxx> Date: Tue, 22 Jul 2008 09:27:23 +0530 |
I think, you can achieve the result by following stylesheet fragment, <xsl:template match="/Folder"> <Folder> <Section> <name>Visible Stations</name> <xsl:copy-of select="Placemark[visibility = '1']" /> </Section> <Section> <name>Invisible Stations</name> <xsl:copy-of select="Placemark[visibility = '0']" /> </Section> </Folder> </xsl:template> (not tested ...) On 7/22/08, Rob Newman <rlnewman@xxxxxxxx> wrote: > Hi there XML gurus, > > I have an XML file with the contents: > > output.xml > > <Folder> > <name>Station List</name> > <Placemark> > <name>PFO</name> > <visibility>1</visibility> > </Placemark> > <Placemark> > <name>MONP2</name> > <visibility>1</visibility> > </Placemark> > <Placemark> > <name>MONP</name> > <visibility>0</visibility> > </Placemark> > <Placemark> > <name>POTR</name> > <visibility>0</visibility> > </Placemark> > </Folder> > > Based on the value of the visibility tag, I would like to rearrange the > output to be split into two sections - 'Visible Stations' and 'Invisible > Stations': > > output_reordered.xml > > <Folder> > <Section> > <name>Visible Stations</name> > <Placemark> > <name>PFO</name> > <visibility>1</visibility> > </Placemark> > <Placemark> > <name>MONP2</name> > <visibility>1</visibility> > </Placemark> > </Section> > <Section> > <name>Invisible Stations</name> > <Placemark> > <name>MONP</name> > <visibility>0</visibility> > </Placemark> > <Placemark> > <name>POTR</name> > <visibility>0</visibility> > </Placemark> > </Section> > </Folder> > > I have a template that matches on the Folder tag, and I get the value of > visibility into a variable. > > convert.xsl > > <xsl:template match="/"> > <Folder> > <!-- How do I enter and populate the Sections here? --> > <xsl:template match="Folder/Placemark"> > <xsl:variable name="thisVisible"><xsl:value-of > select="visibility" /></xsl:variable> > > <!-- Some sort of if/else statement that then moves the Placemark to > the correct location? --> > > <Placemark> > <name><xsl:value-of select="name" /></name> > <visibility><xsl:value-of select="visibility" /></visibility> > </Placemark> > </xsl:template> > </Folder> > </xsl:template> > > How can I ensure that if the visibility tag is set to 1 it gets inserted > into the result tree in the right section (in the Folder named Visible > Stations) and if the tag is set to 0 it gets inserted into the result tree > in the Invisible Stations tag? I assume I need to create the Sections by > hand, but then moving the Placemark sections into one of the Sections is the > part I am stuck on. > > Thanks in advance, > - Rob -- Regards, Mukul Gandhi
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Move a section to different p, Rob Newman | Thread | [xsl] xalan extension function, Sathasivam, Elayaraj |
Re: [xsl] FO table-body empty valid, G. Ken Holman | Date | RE: [xsl] Changing the Attibute Val, Buddhi D. Mahindarat |
Month |