RE: [xsl] sorting - lost in a maze

Subject: RE: [xsl] sorting - lost in a maze
From: "Touchtel" <omprakashv@xxxxxxxxxxxxxxxxx>
Date: Fri, 11 Mar 2005 21:57:50 +0530
Hi,

	I believe the problem is with the following line in your stylesheet.

     <xsl:if test="texte/*= $keyword">
	"*" implies all children of the texte node and you cannot compare a set of
nodes to a single value.

	Try replacing with
  <xsl:if test="texte/*[1][self::cattouristique] ">

GL,
  Omprakash.V



-----Original Message-----
From: Jason Tripanier [mailto:jtrepanier@xxxxxxxxxxx]
Sent: Friday, March 11, 2005 8:40 PM
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: [xsl] sorting - lost in a maze




I am trying to get records out of an xml file that match a $parameter givin.

for example the parameter must search "cattouristique" for "Agrotourisme"
and then the records that match "Agrotourisme" are returned.
Also the records returned must have alternating row colors.

I cant get this working when trying to combine both the for-each and
alternate rows
and I think its because the paths are wrong?

can someone take a peak at the XSL code below and post the right way to do
it?

thanks in advance



XML :

<fiches>
         <fiche>
                 <texte>
                         <cattouristique>Agrotourisme</cattouristique>
                         <typeheberg>Httel</typeheberg>
                         <fichetitre>Nouvelle nouvelle fiche avec
Images</fichetitre>
                         <courtedescription>Neque porro</courtedescription>
                         <longuedescription>Lorem ipsum</longuedescription>
                         <infogeneral>Lorem ipsum</infogeneral>
                         <services>Lorem ipsum</activities>
                 </texte>
         </fiche>
</fiches>

XSL:

<?xml version="1.0" encoding="ISO-8859-1" ?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
<xsl:output method="html" encoding="ISO-8859-1" indent="yes"/>

     <xsl:param name="keyword">none</xsl:param>

<xsl:template match="/">
     <xsl:for-each select="//fiche">
     <xsl:sort order="descending" select="texte/fichetitre"/>
     <xsl:if test="texte/*= $keyword">
     <table width="100%"  border="0" cellspacing="0" cellpadding="0">
         <tr class="myBkgnd_{position()  mod 2 -1}">

         <td width="*" class="pad">
             <xsl:value-of select="texte/fichetitre" />
         </td>
         <td width="150" align="center" class="pad"><xsl:value-of
select="texte/typeheberg" /></td>
         <td width="150" align="center"
class="pad"><xsl:text>123</xsl:text></td>
         <td width="100" align="center" class="pad"><xsl:value-of
select="region/regionnseo" /></td>
     </tr>
     </table>
     </xsl:if>
     </xsl:for-each>
</xsl:template>

</xsl:stylesheet>

Current Thread