|
Subject: [xsl] simple XPath question From: "Chris Nolte" <nolte@xxxxxxxxxxxxxxx> Date: Mon, 2 Jul 2001 13:47:29 -0700 |
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
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [xsl] given @id="1.2.3" .... -1, Jeni Tennison | Thread | Re: [xsl] simple XPath question, Wendell Piez |
| Re: [xsl] given @id="1.2.3" .... -1, Anthony E. | Date | RE: [xsl] given @id="1.2.3" .... -1, Chris Bayes |
| Month |