This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Three questions on sorting..


Hi,

XML/XSL is below.  These problems are causing a very red forehead 
(since I keep banging it on the table in confusion!)

1. Why does the <xsl:sort/> cause a "tr is not allowed in this position 
in the stylesheet" error?  If I take the sorting tags out, it is quite 
happy.

2. Can the <xsl:sort/> use a variable directly?  e.g. <xsl:sort 
select="$orderBy"><xsl:sort>  I'll try it myself when I can get the 
answer to question 1!

3. I would like to sort by manufacturer name but it is in an external 
file.  Is there a way of ordering by the <name/> of the manufacture?  I 
can order by the manufacturer ID but not the external name.  Xpointer?

Thanks for your time,
Tim.
_______________________
Cars.xml
<cars>
  <car ID="car1">
    <model>
      88 Type 2a SWB
    </model>
    <price>
      1200
    </price>
    <manufacturer>
      manufacturer2
    </manufacturer>
  </car>
  <car ID="car2">
    <model>
      Mundaino
    </model>
    <price>
      4500
    </price>
    <manufacturer>
      manufacturer1
    </manufacturer>
  </car>
</cars>

_______________________
manufacturers.xml
<manufacturers>
  <manufacturer ID="manufacturer1">
    <name>
      Ford
    </name>
    <notes>
      Ford Motor Company
    </notes>
  </manufacturer>
  <manufacturer ID="manufacturer2">
    <name>
      Land Rover
    </name>
    <notes>
      Good solid, slow cars.  Not good for motor way driving but will 
pull the side off a house if necessary.
    </notes>
  </manufacturer>
</manufacturers>

_______________________
cars.xsl
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
xmlns:fo="http://www.w3.org/1999/XSL/Format";>
<xsl:output method="html"/>
<xsl:variable name="col" select="document
('http://localhost/xml/manufacturers.xml')"/>
        <xsl:template match="/">
		<xsl:apply-templates select="/cars"/>
        </xsl:template>

        <xsl:template match="cars">
		<table>
		<tr>
			<td>
				<a>
					<xsl:attribute 
name="href"><xsl:value-of 
select="$targetURL"/>manufacturer</xsl:attribute>
					Manufacturer
				</a>
			</td>
			<td>
				<a>
					<xsl:attribute 
name="href"><xsl:value-of select="$targetURL"/>model</xsl:attribute>
					Model
				</a>
			</td>
			<td>
				<a>
					<xsl:attribute 
name="href"><xsl:value-of select="$targetURL"/>price</xsl:attribute>
					Price
				</a>
			</td>
		</tr>
				<xsl:for-each select="car">
					<xsl:sort select="model">
						<tr>
							<td>
							
	<xsl:variable name="cat_id">	<xsl:value-of select="normalize-
space(manufacturer)"/></xsl:variable>
							<xsl:value-of 
select="$col/manufacturers/manufacturer[@ID=$cat_id]/name/text()"/>	
								</td>
							<td>
							
	<xsl:value-of select="normalize-space(model)"/>
							</td>
							<td>
							
	<xsl:value-of select="normalize-space(price)"/>
							</td>
						</tr>
					</xsl:sort>
				</xsl:for-each>
		</table>
	</xsl:template>
	
</xsl:stylesheet>



 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]