[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Move a section to different part of the XML tree
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
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|