Subject: RE: [xsl] XPath 1.0 Question: Can two sibling nodes each select their parent node to yield two nodes? From: "Ludwig, Michael" <Michael.Ludwig@xxxxxxxxxxxx> Date: Thu, 23 Sep 2010 09:28:07 +0200 |
> <?xml version="1.0" encoding="UTF-8"?> > <books> > <category> > <genre>Autobiography</genre> > <book> > <name>My Life and Times</name> > <author>Paul McCartney</author> > </book> > <book> > <name>The Beatles</name> > <author>Paul McCartney</author> > </book> > </category> > <category> > <genre>Music</genre> > <book> > <name>Eight Days a Week</name> > <author>Paul McCartney</author> > </book> > </category> > </books> > > I would like to select the value of <genre> of each <book> > with <author> equal to 'Paul McCartney'. Thus, I want the > XPath to yield: > > Autobiography > Autobiography > Music This is not your stated requirement, but maybe the real one: <categories> <category><genre count="2">Autobiography</genre></category> <category><genre count="1">Music</genre></category> </categories> Produced like this: <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="books"> <categories> <xsl:apply-templates/> </categories> </xsl:template> <xsl:template match="books/category"> <xsl:copy> <xsl:apply-templates select="genre"/> </xsl:copy> </xsl:template> <xsl:template match="books/category/genre"> <genre count="{ count(../book) }"> <xsl:apply-templates/> </genre> </xsl:template> </xsl:stylesheet> But I'd probably rethink your input data structure. -- Michael Ludwig
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] XPath 1.0 Question: Can t, Mukul Gandhi | Thread | [xsl] Question about grouping, David Frey |
Re: [xsl] XPath 1.0 Question: Can t, Mukul Gandhi | Date | Re: [xsl] String manipulation XSLT , pankaj . c |
Month |