Amita
asked on
XSL OrderBy problem ?
In my XSL file I am using the following command...
<xsl:for-each select="ProductGroups/Grou p" order-by="field[@id='Order No']">
That is I am displaying the records in the order of OrderNo...
But it displays records in the following order...1,10,12,13,14,15,2 ,3,4,5
How can i get the proper order ...(1,2,3,4,5,10,12,13,14, 15) ?
<xsl:for-each select="ProductGroups/Grou
That is I am displaying the records in the order of OrderNo...
But it displays records in the following order...1,10,12,13,14,15,2
How can i get the proper order ...(1,2,3,4,5,10,12,13,14,
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
I changed the code like this....In place of
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
now I am writing the following..
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
and using this code...
<xsl:for-each select="ProductGroups/Grou p">
<xsl:sort select="field[@id='OrderNo ']"/>
but ist giving weird results...not displaying the page and its contents... and not even giving any error....what could be the problem ?
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
now I am writing the following..
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
and using this code...
<xsl:for-each select="ProductGroups/Grou
<xsl:sort select="field[@id='OrderNo
but ist giving weird results...not displaying the page and its contents... and not even giving any error....what could be the problem ?
I wonder whether you might post both the XML and the XSL? Quite often a minor error in editing causes really weird results, and I'd like to see the extract structure of the XML document so as to get the node addressing correct.
ASKER
The xml file named as "ProductGroupsNew.xml" is as follows
The structure has distorted a bit b'coz of copy and paste......."ProductGroups " is the root node...."Group" is the child node..
<?xml version="1.0" ?>
- <ProductGroups>
- <Group>
- <field id="ProdGroupId">
<field_value>17</field_val ue>
</field>
- <field id="ProdGroupName">
<field_value>System Generation & Efficiency</field_value>
</field>
- <field id="ProdGroupImage">
<field_value>p1.jpg</field _value>
</field>
- <field id="Description">
<field_value>good</field_v alue>
</field>
- <field id="Url">
<field_value>www.msn.com</field_value >
</field>
- <field id="OrderNo">
<field_value>1</field_valu e>
</field>
</Group>
- <Group>
- <field id="ProdGroupId">
<field_value>18</field_val ue>
</field>
- <field id="ProdGroupName">
<field_value>System Distribution & Utilisation</field_value>
</field>
- <field id="ProdGroupImage">
<field_value>p2.jpg</field _value>
</field>
- <field id="Description">
<field_value>abcl</field_v alue>
</field>
- <field id="Url">
<field_value>www.rediff.com</field_value >
</field>
- <field id="OrderNo">
<field_value>2</field_valu e>
</field>
</Group>
- <Group>
- <field id="ProdGroupId">
<field_value>20</field_val ue>
</field>
- <field id="ProdGroupName">
<field_value>Valves</field _value>
</field>
- <field id="ProdGroupImage">
<field_value>p5.jpg</field _value>
</field>
- <field id="Description">
<field_value>nice</field_v alue>
</field>
- <field id="Url">
<field_value>www.cricket365.com</field_value >
</field>
- <field id="OrderNo">
<field_value>4</field_valu e>
</field>
</Group>
- <Group>
- <field id="ProdGroupId">
<field_value>21</field_val ue>
</field>
- <field id="ProdGroupName">
<field_value>Control Valves New</field_value>
</field>
- <field id="ProdGroupImage">
<field_value>p6.jpg</field _value>
</field>
- <field id="Description">
<field_value>satisfied</fi eld_value>
</field>
- <field id="Url">
<field_value>www.google.com</field_value >
</field>
- <field id="OrderNo">
<field_value>5</field_valu e>
</field>
</Group>
- <Group>
- <field id="ProdGroupId">
<field_value>22</field_val ue>
</field>
- <field id="ProdGroupName">
<field_value>Desuperheater s</field_v alue>
</field>
- <field id="ProdGroupImage">
<field_value />
</field>
- <field id="Description">
<field_value>excelent</fie ld_value>
</field>
- <field id="Url">
<field_value>www.altavista.com</field_value >
</field>
- <field id="OrderNo">
<field_value>6</field_valu e>
</field>
</Group>
- <Group>
- <field id="ProdGroupId">
<field_value>23</field_val ue>
</field>
- <field id="ProdGroupName">
<field_value>Stations</fie ld_value>
</field>
- <field id="ProdGroupImage">
<field_value>p8.jpg</field _value>
</field>
- <field id="Description">
<field_value>wonderfull</f ield_value >
</field>
- <field id="Url">
<field_value>www.lycos.com</field_value >
</field>
- <field id="OrderNo">
<field_value>7</field_valu e>
</field>
</Group>
- <Group>
- <field id="ProdGroupId">
<field_value>24</field_val ue>
</field>
- <field id="ProdGroupName">
<field_value>Flowmetering< /field_val ue>
</field>
- <field id="ProdGroupImage">
<field_value>p9.jpg</field _value>
</field>
- <field id="Description">
<field_value>beautiful</fi eld_value>
</field>
- <field id="Url">
<field_value>www.cricketzone.com</field_value >
</field>
- <field id="OrderNo">
<field_value>8</field_valu e>
</field>
</Group>
- <Group>
- <field id="ProdGroupId">
<field_value>25</field_val ue>
</field>
- <field id="ProdGroupName">
<field_value>Level Measurement</field_value>
</field>
- <field id="ProdGroupImage">
<field_value>p10.jpg</fiel d_value>
</field>
- <field id="Description">
<field_value>flamboyent</f ield_value >
</field>
- <field id="Url">
<field_value>www.jguru.com</field_value >
</field>
- <field id="OrderNo">
<field_value>9</field_valu e>
</field>
</Group>
- <Group>
- <field id="ProdGroupId">
<field_value>26</field_val ue>
</field>
- <field id="ProdGroupName">
<field_value>Flow Switches</field_value>
</field>
- <field id="ProdGroupImage">
<field_value>p11.jpg</fiel d_value>
</field>
- <field id="Description">
<field_value>flabagasted</ field_valu e>
</field>
- <field id="Url">
<field_value>www.switches.com</field_value >
</field>
- <field id="OrderNo">
<field_value>10</field_val ue>
</field>
</Group>
- <Group>
- <field id="ProdGroupId">
<field_value>28</field_val ue>
</field>
- <field id="ProdGroupName">
<field_value>Controllers</ field_valu e>
</field>
- <field id="ProdGroupImage">
<field_value>p13.jpg</fiel d_value>
</field>
- <field id="Description">
<field_value>can't explain</field_value>
</field>
- <field id="Url">
<field_value>www.comtrollers.com</field_value >
</field>
- <field id="OrderNo">
<field_value>12</field_val ue>
</field>
</Group>
- <Group>
- <field id="ProdGroupId">
<field_value>29</field_val ue>
</field>
- <field id="ProdGroupName">
<field_value>Control Systems</field_value>
</field>
- <field id="ProdGroupImage">
<field_value>p14.jpg</fiel d_value>
</field>
- <field id="Description">
<field_value>moderate</fie ld_value>
</field>
- <field id="Url">
<field_value>www.quickSpeed.com</field_value >
</field>
- <field id="OrderNo">
<field_value>13</field_val ue>
</field>
</Group>
- <Group>
- <field id="ProdGroupId">
<field_value>30</field_val ue>
</field>
- <field id="ProdGroupName">
<field_value>pneumatic</fi eld_value>
</field>
- <field id="ProdGroupImage">
<field_value />
</field>
- <field id="Description">
<field_value />
</field>
- <field id="Url">
<field_value>www.pneumatics.com</field_value >
</field>
- <field id="OrderNo">
<field_value>14</field_val ue>
</field>
</Group>
</ProductGroups>
The xsl file "ProductGroupsNew.xsl" is :
<?xml version='1.0'?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/">
<HTML>
<table cellpadding="2" cellspacing="0" border="1" bordercolor="#808080" width="100%" style="border-collapse: collapse">
<tr bgcolor="#B4B4B4">
<th bordercolor="#808080">
<font face="arial,helvetica" size="2" color="#FFFFFF">Order No</font>
</th>
<th bordercolor="#808080">
<font face="arial,helvetica" size="2" color="#FFFFFF">Name</font >
</th>
<th bordercolor="#808080">
<font face="arial,helvetica" size="2" color="#FFFFFF">Url</font>
</th>
<th bordercolor="#808080">
<font face="arial,helvetica" size="2" color="#FFFFFF">Image</fon t>
</th>
<th bordercolor="#808080">
<font face="arial,helvetica" size="2" color="#FFFFFF">Update Order</font>
</th>
<th bordercolor="#808080"><fon t face="arial,helvetica" size="2" color="#FFFFFF">Edit</font ></th>
<th bordercolor="#808080"><fon t face="arial,helvetica" size="2" color="#FFFFFF">Delete</fo nt></th>
</tr>
<xsl:for-each select="ProductGroups/Grou p" order-by="-field[@id='Orde rNo']">
<tr>
<td>
<font face="arial" size="2">
<xsl:value-of select="field[@id='OrderNo ']/field_v alue"/>
</font>
</td>
<td>
<font face="arial" size="2">
<xsl:value-of select="field[@id='ProdGro upName']/f ield_value "/>
</font>
</td>
<td>
<font face="arial" size="2">
<xsl:value-of select="field[@id='Url']/f ield_value "/>
</font>
</td>
<td>
<img>
<xsl:attribute name="src">../../images/pr odgroups/< xsl:value- of select="field[@id='ProdGro upImage']/ field_valu e"/></xsl: attribute>
</img>
</td>
<td>
</td>
<td align="center">
<a>
<xsl:attribute name="href">editProdGroup. asp?id=<xs l:value-of select="field[@id='ProdGro upId']/fie ld_value"/ ></xsl:att ribute>
<img>
<xsl:attribute name="src">../../images/ed iticon.gif </xsl:attr ibute>
<xsl:attribute name="border">0</xsl:attri bute>
</img>
</a>
</td>
<td align="center">
<a>
<xsl:attribute name="href">deleteProdGrou p.asp?id=< xsl:value- of select="field[@id='ProdGro upId']/fie ld_value"/ ></xsl:att ribute>
<img>
<xsl:attribute name="src">../../images/tr ash.gif</x sl:attribu te>
<xsl:attribute name="border">0</xsl:attri bute>
</img>
</a>
</td>
</tr>
</xsl:for-each>
</table>
</HTML>
</xsl:template>
</xsl:stylesheet>
And in an asp file I have put the following code...
<%
sourceFile = Server.MapPath("ProductGro upsNew.xml ")
styleFile = Server.MapPath("ProductGro upsNew.xsl ")
set source = Server.CreateObject("Micro soft.XMLDO M")
source.async = false
source.load(sourceFile)
set style = Server.CreateObject("Micro soft.XMLDO M")
style.async = false
style.load(styleFile)
Response.Write source.transformNode(style )
%>
The structure has distorted a bit b'coz of copy and paste......."ProductGroups
<?xml version="1.0" ?>
- <ProductGroups>
- <Group>
- <field id="ProdGroupId">
<field_value>17</field_val
</field>
- <field id="ProdGroupName">
<field_value>System Generation & Efficiency</field_value>
</field>
- <field id="ProdGroupImage">
<field_value>p1.jpg</field
</field>
- <field id="Description">
<field_value>good</field_v
</field>
- <field id="Url">
<field_value>www.msn.com</field_value
</field>
- <field id="OrderNo">
<field_value>1</field_valu
</field>
</Group>
- <Group>
- <field id="ProdGroupId">
<field_value>18</field_val
</field>
- <field id="ProdGroupName">
<field_value>System Distribution & Utilisation</field_value>
</field>
- <field id="ProdGroupImage">
<field_value>p2.jpg</field
</field>
- <field id="Description">
<field_value>abcl</field_v
</field>
- <field id="Url">
<field_value>www.rediff.com</field_value
</field>
- <field id="OrderNo">
<field_value>2</field_valu
</field>
</Group>
- <Group>
- <field id="ProdGroupId">
<field_value>20</field_val
</field>
- <field id="ProdGroupName">
<field_value>Valves</field
</field>
- <field id="ProdGroupImage">
<field_value>p5.jpg</field
</field>
- <field id="Description">
<field_value>nice</field_v
</field>
- <field id="Url">
<field_value>www.cricket365.com</field_value
</field>
- <field id="OrderNo">
<field_value>4</field_valu
</field>
</Group>
- <Group>
- <field id="ProdGroupId">
<field_value>21</field_val
</field>
- <field id="ProdGroupName">
<field_value>Control Valves New</field_value>
</field>
- <field id="ProdGroupImage">
<field_value>p6.jpg</field
</field>
- <field id="Description">
<field_value>satisfied</fi
</field>
- <field id="Url">
<field_value>www.google.com</field_value
</field>
- <field id="OrderNo">
<field_value>5</field_valu
</field>
</Group>
- <Group>
- <field id="ProdGroupId">
<field_value>22</field_val
</field>
- <field id="ProdGroupName">
<field_value>Desuperheater
</field>
- <field id="ProdGroupImage">
<field_value />
</field>
- <field id="Description">
<field_value>excelent</fie
</field>
- <field id="Url">
<field_value>www.altavista.com</field_value
</field>
- <field id="OrderNo">
<field_value>6</field_valu
</field>
</Group>
- <Group>
- <field id="ProdGroupId">
<field_value>23</field_val
</field>
- <field id="ProdGroupName">
<field_value>Stations</fie
</field>
- <field id="ProdGroupImage">
<field_value>p8.jpg</field
</field>
- <field id="Description">
<field_value>wonderfull</f
</field>
- <field id="Url">
<field_value>www.lycos.com</field_value
</field>
- <field id="OrderNo">
<field_value>7</field_valu
</field>
</Group>
- <Group>
- <field id="ProdGroupId">
<field_value>24</field_val
</field>
- <field id="ProdGroupName">
<field_value>Flowmetering<
</field>
- <field id="ProdGroupImage">
<field_value>p9.jpg</field
</field>
- <field id="Description">
<field_value>beautiful</fi
</field>
- <field id="Url">
<field_value>www.cricketzone.com</field_value
</field>
- <field id="OrderNo">
<field_value>8</field_valu
</field>
</Group>
- <Group>
- <field id="ProdGroupId">
<field_value>25</field_val
</field>
- <field id="ProdGroupName">
<field_value>Level Measurement</field_value>
</field>
- <field id="ProdGroupImage">
<field_value>p10.jpg</fiel
</field>
- <field id="Description">
<field_value>flamboyent</f
</field>
- <field id="Url">
<field_value>www.jguru.com</field_value
</field>
- <field id="OrderNo">
<field_value>9</field_valu
</field>
</Group>
- <Group>
- <field id="ProdGroupId">
<field_value>26</field_val
</field>
- <field id="ProdGroupName">
<field_value>Flow Switches</field_value>
</field>
- <field id="ProdGroupImage">
<field_value>p11.jpg</fiel
</field>
- <field id="Description">
<field_value>flabagasted</
</field>
- <field id="Url">
<field_value>www.switches.com</field_value
</field>
- <field id="OrderNo">
<field_value>10</field_val
</field>
</Group>
- <Group>
- <field id="ProdGroupId">
<field_value>28</field_val
</field>
- <field id="ProdGroupName">
<field_value>Controllers</
</field>
- <field id="ProdGroupImage">
<field_value>p13.jpg</fiel
</field>
- <field id="Description">
<field_value>can't explain</field_value>
</field>
- <field id="Url">
<field_value>www.comtrollers.com</field_value
</field>
- <field id="OrderNo">
<field_value>12</field_val
</field>
</Group>
- <Group>
- <field id="ProdGroupId">
<field_value>29</field_val
</field>
- <field id="ProdGroupName">
<field_value>Control Systems</field_value>
</field>
- <field id="ProdGroupImage">
<field_value>p14.jpg</fiel
</field>
- <field id="Description">
<field_value>moderate</fie
</field>
- <field id="Url">
<field_value>www.quickSpeed.com</field_value
</field>
- <field id="OrderNo">
<field_value>13</field_val
</field>
</Group>
- <Group>
- <field id="ProdGroupId">
<field_value>30</field_val
</field>
- <field id="ProdGroupName">
<field_value>pneumatic</fi
</field>
- <field id="ProdGroupImage">
<field_value />
</field>
- <field id="Description">
<field_value />
</field>
- <field id="Url">
<field_value>www.pneumatics.com</field_value
</field>
- <field id="OrderNo">
<field_value>14</field_val
</field>
</Group>
</ProductGroups>
The xsl file "ProductGroupsNew.xsl" is :
<?xml version='1.0'?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/">
<HTML>
<table cellpadding="2" cellspacing="0" border="1" bordercolor="#808080" width="100%" style="border-collapse: collapse">
<tr bgcolor="#B4B4B4">
<th bordercolor="#808080">
<font face="arial,helvetica" size="2" color="#FFFFFF">Order No</font>
</th>
<th bordercolor="#808080">
<font face="arial,helvetica" size="2" color="#FFFFFF">Name</font
</th>
<th bordercolor="#808080">
<font face="arial,helvetica" size="2" color="#FFFFFF">Url</font>
</th>
<th bordercolor="#808080">
<font face="arial,helvetica" size="2" color="#FFFFFF">Image</fon
</th>
<th bordercolor="#808080">
<font face="arial,helvetica" size="2" color="#FFFFFF">Update Order</font>
</th>
<th bordercolor="#808080"><fon
<th bordercolor="#808080"><fon
</tr>
<xsl:for-each select="ProductGroups/Grou
<tr>
<td>
<font face="arial" size="2">
<xsl:value-of select="field[@id='OrderNo
</font>
</td>
<td>
<font face="arial" size="2">
<xsl:value-of select="field[@id='ProdGro
</font>
</td>
<td>
<font face="arial" size="2">
<xsl:value-of select="field[@id='Url']/f
</font>
</td>
<td>
<img>
<xsl:attribute name="src">../../images/pr
</img>
</td>
<td>
</td>
<td align="center">
<a>
<xsl:attribute name="href">editProdGroup.
<img>
<xsl:attribute name="src">../../images/ed
<xsl:attribute name="border">0</xsl:attri
</img>
</a>
</td>
<td align="center">
<a>
<xsl:attribute name="href">deleteProdGrou
<img>
<xsl:attribute name="src">../../images/tr
<xsl:attribute name="border">0</xsl:attri
</img>
</a>
</td>
</tr>
</xsl:for-each>
</table>
</HTML>
</xsl:template>
</xsl:stylesheet>
And in an asp file I have put the following code...
<%
sourceFile = Server.MapPath("ProductGro
styleFile = Server.MapPath("ProductGro
set source = Server.CreateObject("Micro
source.async = false
source.load(sourceFile)
set style = Server.CreateObject("Micro
style.async = false
style.load(styleFile)
Response.Write source.transformNode(style
%>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
you would then write :-
<xsl:for-each select="ProductGroups/Grou
xsl:sort select="field[@id='OrderNo