Re: [xsl] xpath

Subject: Re: [xsl] xpath
From: "cutlass" <cutlass@xxxxxxxxxxx>
Date: Thu, 10 Jan 2002 15:27:52 -0000
Hello Maneshi,

----- Original Message -----
From: "Maneshi Tuli" <maneshi.tuli@xxxxxx>
> 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


Current Thread