This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: xpath
- From: "cutlass" <cutlass at secure0 dot com>
- To: <xsl-list at lists dot mulberrytech dot com>
- Date: Thu, 10 Jan 2002 15:27:52 -0000
- Subject: Re: [xsl] xpath
- References: <OFF17DF532.015F5D54-ON85256B3D.00521D65@db.com>
- Reply-to: xsl-list at lists dot mulberrytech dot com
Hello Maneshi,
----- Original Message -----
From: "Maneshi Tuli" <maneshi.tuli@db.com>
> Hi ,
> In my xml , node is like this
> <row num='1'>
> <col num='1' drill ='xyz' >abc</col>
> <col num='2' >abc2</col>
> </row>
> <row num='2'>
> ...
>
> i want to access drill attribute of col[ num='1' ] for row num='1'
> i do like this
> <xsl:if test="@num='1'" >
> <xsl:for-each select="col[@num='1']">
> <xsl:value-of select="@drill"/>
> </xsl:for-each>
> </xsl:if>
>
try this
XSLT
------------------------------
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:for-each select="//row[@num='1']">
<xsl:for-each select="col[@num='1']">
<xsl:value-of select="@drill"/>
</xsl:for-each>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
XML
-------------------------------
<?xml version="1.0" ?>
<test>
<row num='1'>
<col num='1' drill ='test1' >a</col>
<col num='2' >a2</col>
</row>
<row num='2'>
<col num='1' drill ='test2' >b</col>
<col num='2' >b2</col>
</row>
<row num='3'>
<col num='1' drill ='test3' >c</col>
<col num='2' >c2</col>
</row>
</test>
i've rejigged your xml around a little.....
in general the stylesheet could be changed to use templates, beginning users
of XSLT tend to use xsl:for-each a little too often;
XSL file
-----------------------------
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:apply-templates select="//row[@num='1']/col[@num='1']"/>
</xsl:template>
<xsl:template match="row[@num='1']/col[@num='1']">
<xsl:value-of select="@drill"/>
</xsl:template>
</xsl:stylesheet>
so instead of using xsl:for-each one uses templates, now admittedly what i
have made here is still awkward, i leave it to u to clean up my mess.
good luck, jim fuller
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list