|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] simple XPath question
I am trying to work through an example in Khun Yee Fung's XSLT book. It is
not giving me the solution he claims it should, but I do not understand why
not.
Here is the sample XML:
<?xml version='1.0'?>
<warehouse>
<item>
<name>orange</name>
<country>US</country>
</item>
<item>
<name>ice wine</name>
<country>Canada</country>
</item>
</warehouse>
And here is the stylesheet:
<?xml version='1.0'?>
<xsl:stylesheet version='1.0'
xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
<xsl:output method='xml' indent='yes'/>
<xsl:template match='/'>
<xsl:apply-templates/>
</xsl:template>
<xsl:template match='warehouse'>
<storage>
<xsl:apply-templates select='item/country'/>
</storage>
</xsl:template>
<xsl:template match='country'>
<xsl:copy-of select='.'/>
</xsl:template>
<xsl:template match='country[1]'>
<first-country>
<xsl:copy-of select='.'/>
</first-country>
</xsl:template>
</xsl:stylesheet>
The output I am getting [using Saxon] is:
<?xml version="1.0" encoding="utf-8"?>
<storage>
<first-country>
<country>US</country>
</first-country>
<first-country>
<country>Canada</country>
</first-country>
</storage>
i.e., the first-country template is getting matched both times, even though
the XPath expression uses country[1]. What seems strange to me is that when
I include the line <xsl:copy-of select='position()'/> at the beginning of
the template matching country[1], I get a 1 and a 2.
I believe I am supposed to get:
<storage>
<first-country>
<country>US</country>
</first-country>
<country>Canada</country>
</storage>
Am I doing something wrong, or is the example in Fung's book (Chapter 6, p.
149) wrong? How should the stylesheet be structured to get the intended
output?
Chris
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|

Cart








