Subject: RE: [xsl] How to sort? From: <Jarno.Elovirta@xxxxxxxxx> Date: Thu, 14 Oct 2004 11:45:38 +0300 |
Hi, > I want pick only Article elements where attribute info="main" > > info-attribute is not located on the Document level, only on > Article level, > so when info="main" located it should be placed in the same > originating Document node > wheter info-atribute is located on Document level or not. > > I need to order output XML by Chapter, chapter-attribute, on > Document-level. (i,ii,1,2 ... n) > > Then I need to sort the output on Article level by state, ascending. > > the output XML should look like this > > > <?xml version="1.0"?> > > <Document title="1" chapter="i" href="file1.xml" filter="food"> > <Article title="1.3" info="main" filter="drink" state="2"/> > <Article title="1.2" info="main" filter="food" state="3"/> > </Document> > > <Document title="2" chapter="ii" href="file2.xml" filter="drink"> > <Article title="2.1" info="main" filter="drink" state="1"/> > <Article title="2.2" info="main" filter="food" state="2"/> > </Document> > > <Document title="4" chapter="2" href="file2.xml" filter=""> > <Article title="3.2" info="main" filter="food" state="1"/> > </Document> <xsl:template match="/"> <xsl:apply-templates select="Documents/Document[Article/@info = 'main']"/> </xsl:template> <xsl:template match="Document"> <xsl:copy> <xsl:copy-of select="@*"/> <xsl:for-each select="Article[@info = 'main']"> <xsl:sort select="@state" data-type="number"/> <xsl:copy-of select="."/> </xsl:for-each> </xsl:copy> </xsl:template> Note that your output is not well-formed XML and the stylesheet above will recreate the output example. Cheers, Jarno - Seabound: Contact (Assemblage 23 remix)
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] How to sort?, Mike G | Thread | Re: [xsl] How to sort?, Mike G |
[xsl] How to sort?, Mike G | Date | Re: [xsl] How to sort?, Mike G |
Month |