THE PROBLEM
The problem I am having
with the XSL below is with the 'ThisHotelID' variable and 'HotelURL' variable.
I don't get an error but I can't seem to be able to get the value of the
'ThisHotelID' variable into the variable of 'HotelURL' - it seems to just
ignore it and parse the variable as if it's empty?!
MY QUESTIONS
What am I
doing wrong here?
Are you not able to put a variable within another variable?
What is the best way to do this?
----------------------------------------
CODE ----------------------------------------
XML 1 (hotelinfo.xml)
<Hotel>
<HotelID>1234567</HotelID>
<HotelName>Hotel Name Here</HotelName>
<HotelAddress>Hotel Address Here</HotelAddress>
<City>City Name</City>
<Country>Country Name</Country>
<StarRating>5</StarRating>
<!-- There is lots
more information in this xml file omitted here to save space -->
</Hotel>
XML
2 (hotellist.xml)
<hotels>
<hotel id="1234567">
<hotelname>Hotel Name
Here</hotelname>
<hotelurl>/link/to/hotel/url/on/server.php</hotelurl>
<latitude>18.76624</latitude>
<longitude>98.99526</longitude>
</hotel>
<hotel
id="7654321">
<hotelname>Hotel Name Here</hotelname>
<hotelurl>/link/to/hotel/url/on/server.php</hotelurl>
<latitude>18.76624</latitude>
<longitude>98.99526</longitude>
</hotel>
<!--
There are lots more hotels in this xml file omitted here to save space -->
</hotels>
COMBINED XML FILE (combined.xml)
<hoteldetails>
<file
href="http://www.mydomain.org/hotels/hotelinfo.xml"/>
<file
href="http://www.mydomain.org/hotels/hotellist.xml"/>
</hoteldetails>
XSL
FILE (hotel.xsl)
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet
version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output
method="html" encoding="UTF-8" doctype-public="-//W3C//DTD XHTML 1.0
Transitional//EN"
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
<xsl:template match="hoteldetails">
<h1><xsl:value-of
select="document(file/@href)/Hotel/HotelName"/></h1>
<p><xsl:value-of
select="document(file/@href)/Hotel/Address"/></p>
<xsl:variable
name="ThisHotelID"><xsl:value-of select="document(file/@href)/Hotel/HotelID"
/></xsl:variable>
<xsl:variable name="HotelURL"><xsl:value-of
select="document(file/@href)/hotels/hotel[@id='{$ThisHotelID}']/hotelurl"
/></xsl:variable>
<p>
<a href="http://www.mydomain.org{$HotelURL}"
title="Click to view the {document(file/@href)/Hotel/HotelName}"
target="_top">
<img src="http://www.mydomain.org/hotels/images/image.jpg"
alt="{document(file/@href)/Hotel/HotelName}" />
</a>
</p>
<!-- There are a lot
more hotels and hotels info in this xml file omitted here to save space -->
</xsl:template>
</xsl:stylesheet>