Subject: RE: [xsl] how to sort by different attributes in a table From: "Michael Kay" <mhk@xxxxxxxxx> Date: Mon, 30 Aug 2004 23:24:24 +0100 |
Attributes don't have any predictable order, so it doesn't make any sense to ask for elements to be sorted on "their third attribute". It's possible that select="@*[number($Sort)]" will work for you, but it's rather implementation-dependent. Michael Kay > -----Original Message----- > From: Shen, Ching [mailto:Shenc@xxxxxxxx] > Sent: 30 August 2004 22:42 > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: RE: [xsl] how to sort by different attributes in a table > > > Michael: > Thanks for the suggestion. Unfortunately, you change didn't work. > Here Sort=1,2,3.... which is column position number > But @[local-name()] = A, B, C, ... which is column name > > Any further suggest? > > > -----Original Message----- > From: Michael Kay [mailto:mhk@xxxxxxxxx] > Sent: Monday, August 30, 2004 4:06 PM > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: RE: [xsl] how to sort by different attributes in a table > > > This is a FAQ. > > Use <xsl:sort select="@*[local-name() = $Sort]"/> > > The reason your attempt doesn't work is that a sort key such > as $Sort that > doesn't depend on the context node will have the same value > for each of the > nodes in the node-set being sorted. The system can't guess > that you want to > treat the value of this variable, e.g. "HOSTNAME", as an > XPath expression. > > Michael Kay > > > > > -----Original Message----- > > From: Shen, Ching [mailto:Shenc@xxxxxxxx] > > Sent: 30 August 2004 20:54 > > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > > Subject: [xsl] how to sort by different attributes in a table > > > > > > I have a xml file which looks like > > <Rows> > > <Row> > > <Columns A=3D"HOSTNAME" B=3D"IPADDRESS" C=3D"BRAND/MODEL" /> > > </Row> > > <Row> > > <Columns A=3D"AA" B=3D"23" C=3D"ibm" /> > > </Row> > > ...... > > </Rows> > > > > > > I have all attributes list in a table as columns and I need a > > xsl syntax = > > which will allow me to sort by selected attribute, when they click = > > attribute header,=20 > > > > i. e. when user click 2nd column header, all xml file will > sorted by = > > <xsl:sort select=3D"*/@B" /> > > > > The following syntax failed to work and I run out clue. > Here header = > > link set to Sort=3D{position()}=20 > > > > <xsl:apply-templates select=3D"*/*"> > > <xsl:sort select=3D"*/@Columns[$Sort]" /> > > </xsl:apply-templates> > > > > Does anybody have done this before and can help me out with > > right syntax? > > Your suggestions will be greatly appreciated > > > > > > Thank you! > > > > Ching
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] how to sort by different , Shen, Ching | Thread | RE: [xsl] how to sort by different , Shen, Ching |
RE: [xsl] how to sort by different , Shen, Ching | Date | Fwd: RE: [xsl] Retrieving the date , Lisa Settle |
Month |