I am trying to process an XML file with XSLT to produce a list or table or (eventually) an SQL INSERT command with some of the values. I have been using the example from w3schools http://www.w3schools.com/xsl/tryxslt.asp?xmlfile=cdcatalog&xsltfile=cdcatalog.
My XML is very simple and I need to extract just the name and the rate of the hotel:
<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <soapenv:Body>
    <getHotelsResponse xmlns="http://hotel.booking.vbooking.com">
      <getHotelsReturn>
        <address>
          <number>589-591</number>
          <postcode>08014</postcode>
          <region>Catalonia</region>
          <street>Carrer Vermell</street>
          <town>Barcelona</town>
        </address>
        <name>Downtown Hotel</name>
        <rate>235.0</rate>
      </getHotelsReturn>
    </getHotelsResponse>
  </soapenv:Body>
</soapenv:Envelope>
The best XSLT I could build up from the w3schools was this one:
<?xml version="1.0" encoding="utf-8"?>
<!-- Edited by XMLSpyΠ-->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/soapenv:Envelope/soapenv:Body/getHotelsResponse">
  <html>
  <body>
  <h2>Hotels in Barcelona</h2>
    <table border="1">
      <tr bgcolor="#9acd32">
        <th>Hotel name</th>
        <th>Rate ($/night)</th>
      </tr>
      <xsl:for-each select="getHotelsReturn">
      <tr>
        <td><xsl:value-of select="name"/></td>
        <td><xsl:value-of select="rate"/></td>
      </tr>
      </xsl:for-each>
    </table>
  </body>
  </html>
</xsl:template>
</xsl:stylesheet>
Which should produce a similar result to what I had in the w3schools example, but it comes back as blank.
Can anyone please explain this? Thanks.
