[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

RE: [xsl] xpath query


Subject: RE: [xsl] xpath query
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Sat, 19 Jan 2008 00:46:08 -0000

In XSLT 2.0, when you do <xsl:value-of select="EXPR"/> and EXPR selects a
sequence of nodes, the output consists of the string-values of those nodes,
separated by a single space.

If you want to copy the nodes to the output rather than extracting their
string values, try <xsl:copy-of>.

Michael Kay
http://www.saxonica.com/ 

> -----Original Message-----
> From: Sean Tiley [mailto:sean.tiley@xxxxxxxxx] 
> Sent: 18 January 2008 23:46
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: Re: [xsl] xpath query
> 
> Hi there,
> I am still struggling with mostof this stuff, but I have a 
> question related to the original data.
> 
> <ROOT>
>     <LEVEL2>
>         <B>
>             <a>100</a>
>             <b apply="1">100</b>
>             <c>100</c>
>         </B>
>         <C>
>             <a>100</a>
>             <b>100</b>
>             <c apply="1">100</c>
>         </C>
>         </LEVEL2>
> </ROOT>
> 
> If I create the following stylesheet I get 100 100 output
> 
> <xsl:stylesheet 
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
>     <xsl:template match="ROOT">
>         <html>
>             <xsl:value-of select="LEVEL2/*/*[@apply='1']"/>
>         </html>
>     </xsl:template>
> </xsl:stylesheet>
> 
> What I am not clear on is why does this return values and not nodes?
> Or is this really returning both nodes and I am getting the 
> value of each one because of the <xsl:value-of select="..."/> 
> expression?
> 
> As far as I can figure the expression ROOT/LEVEL2/*/*[@apply='1']"
> says give me the  nodes that have the arrtibute apply=1 and 
> are grandchildren of level2.
> 
> I kind of though to get both values I would have to do something like
> 
> <xsl:template match="ROOT">
>       <xsl:for-each select="LEVEL2/*/*[@apply='1']">
>            <xsl:value-of select="."/>
>       </xsl:for-each>
> </xsl:template>
> 
> Sorry if this seems really trivial but it helps me to better 
> understand.
> 
> --
> Thanks
> Sean


Current Thread
Keywords