At 08:42 AM 6/26/2002, you wrote:
The following is what i read..
<<//@width/..>> selects all the elements in the document that have a width
attribute.
would this mean that if i have a xml file that looks like..
<rooms>
<room width = "1">
my room 1
</room>
<room width = "2">
my room 2
</room>
<room width = "3">
my room 3
</room>
<room width = "4">
my room 4
</room>
</rooms>
then an XSL code like
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:value-of select="//@width/.."/><br/>
</xsl:template>
</xsl:stylesheet>
should return me all the rooms text like
my room 1
my room 2
my room 3
my room 4..
xsl:value-of only returns the string version of the first match. You
would need the xsl:for-each in order to get all of them. Try something
like this:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:for-each select="//@width/..">
<xsl:value-of select="."/><br/>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
> I am a bit confused about the above mentioned statement that
> i read in the book. I shud be grateful if someone(possibly
> Mr Kay) clears my doubt..I think i am missing something here..
The selection is not the problem, the value-of is. The selection indeed
selected all of the nodes (though your version of /rooms/room[(_at_)width] is
faster). The value-of only grabbed the first one.
Greg Faron
Integre Technical Publishing Co.
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list