[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
[Recent Entries]
[Reply To This Message]
RE: Sort By Multiple Values?
Subject: RE: Sort By Multiple Values?
From: Alice Wei <ajwei@xxxxxxxxxxx>
Date: Thu, 27 Dec 2007 15:40:54 -0500
|
Quoting "Bjorndahl, Brad" <brad.bjorndahl@xxxxxxxxxxxxxxxx>:
Hi,
Your sort statement should probably be something like:
<xsl:sort select="ability/@rank" order="ascending"/>
because the language element does not have a rank attribute.
Thanks, but when I put it in, it made no difference. What is
stranger is, it appears that when as Abel said, telling me to insert in
<xsl:sort select="type" order="ascending"/>
after the
<xsl:sort select="ability/@rank" order="ascending"/>,
it generates a different order compared with the one without before.
Before, XML 1.0 was the first element that is on the left, but now is
HTML. However, what it does not do is that it should have kept CSS in
the first one, since it has the same ranking.
What have I done wrong?
Here is the document again:
<computer>
<language>
<ability rank="1">XML 1.0</ability>
<type>XML</type>
</language>
<language>
<ability rank="1">XSLT 1.0</ability>
<type>XML</type>
</language>
<language>
<ability rank="2">XSLT 2.0</ability>
<type>XML</type>
</language>
<language>
<ability rank="1">HTML 4.01 / XHTML 1.0</ability>
<type>HTML</type>
</language>
<language>
<ability rank="1">CSS</ability>
<type>HTML</type>
</language>
Brad
-----Original Message-----
From: Alice Wei [mailto:ajwei@xxxxxxxxxxx]
Sent: December 27, 2007 1:29 PM
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: Re: Sort By Multiple Values?
Hi,
Sorry, I have messed up my previous document in the cut and paste.
Here is the "correct" document.
I have a document here where I am attempting to sort it using multiple
values. Here is the XML:
<computer>
<language>
<ability rank="1">XML 1.0</ability>
<type>XML</type>
</language>
<language>
<ability rank="1">XSLT 1.0</ability>
<type>XML</type>
</language>
<language>
<ability rank="2">XSLT 2.0</ability>
<type>XML</type>
</language>
<language>
<ability rank="1">HTML 4.01 / XHTML 1.0</ability>
<type>HTML</type>
</language>
<language>
<ability rank="1">CSS</ability>
<type>HTML</type>
</language>
</computer>
The XSL:
<xsl:template match="computer">
[<span class="skills">
<xsl:apply-templates select="language">
<xsl:sort select="@rank" order="ascending"/>
</xsl:apply-templates>
</span>]
</xsl:template>
The output now is in the same order as it is in the order of the
document w= hen the @rank value is 1, and followed by the one where
@rank=2.
[XML 1.0] [XSLT 1.0] [HTML 4.01/XHTML 1.0] [CSS] [XSLT 2.0].
Is it possible that I can get it to display as
[CSS] [HTML 4.01/XHTML 1.0] [XML 1.0] [XSLT 1.0] [XSLT 2.0]
?
Thanks to those who can help.
Alice Wei
MIS 2008
School of Library and Information Science Indiana University
Bloomington ajwei@xxxxxxxxxxx
812-856-2659
Alice Wei
MIS 2008
School of Library and Information Science
Indiana University Bloomington
ajwei@xxxxxxxxxxx
812-856-2659
|
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
RSS 2.0 |
|
Atom 0.3 |
|
|