![]() |
|
|
|||||||
![]() |
XML - XSLT: Select nodes in reverse order |
|
|
Thread Tools | Search this Thread |
|
|
#1 |
|
I have an xml document such as:
<device> <element>first</element> <element>second</element> </device> I am using this as the source for an xslt transform that goes like <xsl:for-each select="/device/element> This is the <xsl:value-of select="."/> element. </xsl:for-each> This would result in the following: This is the first element This is the second element Is it possible to select the nodes in reverse order so that I would end up with: This is the second element This is the first element I can add a unique attribute to <element> if that would help such as: <device> <element id="1">first</element> <element id="2">second</element> </device> Is there an XPath statement I can use in the <xsl:for-each> to select the elements in reverse order using the attribute as an order tag? Scott thrill5 |
|
|
|
|
#2 |
|
Posts: n/a
|
thrill5 wrote: >I have an xml document such as: > <device> > <element>first</element> > <element>second</element> > </device> > > I am using this as the source for an xslt transform that goes like > > <xsl:for-each select="/device/element> > This is the <xsl:value-of select="."/> element. > </xsl:for-each> > > This would result in the following: > > This is the first element > This is the second element > > Is it possible to select the nodes in reverse order so that I would end up > with: > > This is the second element > This is the first element > > I can add a unique attribute to <element> if that would help such as: > <device> > <element id="1">first</element> > <element id="2">second</element> > </device> > > Is there an XPath statement I can use in the <xsl:for-each> to select the > elements in reverse order using the attribute as an order tag? > > Scott > Scott, I'm real new at this so take it with a grain of salt. <xsl:template match="//device"> <xsl:for-each select="element"> <xsl:sort select="@id" data-type="number" order="descending"/> <xsl:text>This is the </xsl:text> <xsl:value-of select="."/> <xsl:text> element.</xsl:text> </xsl:for-each> </xsl:template> Jeff Higgins |
|
|
|
#3 |
|
Posts: n/a
|
Jeff Higgins wrote:
> I'm real new at this so take it with a grain of salt. You were on the right track... The nodes selected by xsl:for-each are normally presented in document order. To get reverse document order, you want to reverse that positioning -- which can be done by re-sorting in descending order by original position. <xsl:template match="/"> <xsl:for-each select="/device/element"> <xsl:sort select="position()" data-type="number" order="descending"/> This is the <xsl:value-of select="."/> element. </xsl:for-each> </xsl:template> -- () ASCII Ribbon Campaign | Joe Kesselman /\ Stamp out HTML e-mail! | System architexture and kinetic poetry Joe Kesselman |
|
|
|
#4 |
|
Posts: n/a
|
Joe Kesselman wrote: > ... To get reverse document order, you want to reverse that positioning -- > which can be done by re-sorting in descending order by original position. > > <xsl:sort select="position()" data-type="number" order="descending"/> > How neat! Thanks, Joe. Jeff Higgins |
|
![]() |
| Thread Tools | Search this Thread |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Kodak Easyshare - manual order probs | John Bailey | General Help Related Topics | 0 | 01-08-2009 04:37 PM |
| Why are TV shows on DVD Out Of Order? | mhadley | DVD Video | 3 | 09-20-2007 11:56 PM |
| DVD Verdict reviews: LAW AND ORDER: SPECIAL VICTIMS UNIT: THE FIFTH YEAR and more! | DVD Verdict | DVD Video | 0 | 11-03-2004 10:12 AM |
| Viewing order for Batman: The Animated Series? | Robert Kaiser | DVD Video | 11 | 07-25-2004 03:15 AM |
| New Releases: Apprentice, Magnum, Munsters & Law & Order: Updated complete downloadable R1 DVD DB & info lists | Doug MacLean | DVD Video | 1 | 06-05-2004 03:04 PM |