[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: Linking Variable to the Path

Subject: Re: Linking Variable to the Path
From: Matthieu Ricaud <matthieu.ricaud@xxxxxxxxx>
Date: Wed, 22 Aug 2007 11:11:16 +0200
Re:  Linking Variable to the Path
Hi Yaswanth, 

> Hi Peter and Everyone out there!
>   Thanks for the reply ~
> I have '//every[1]/event[1]' as the destination attributes value.
> And there is 'name' attribute  for '//every[1]/event[1]'
> i.e //every[1]/event[1]/@name gives me the Value 'Ready'.
> Why not $dest/@name gives me the same ?
> How to get it  ?

In your fisrt xsl <xsl:variable name="dest" 	select="//every[1]/event[1]"/>  will get a *node* /root/every[1]/event[1], 
which do has a @name attribute. Then $dest/@name will get this attribute value.

But in your second xsl  <xsl:variable name="dest" select="//pattern[1]/connection[1]/@destination"/>   will get the *string* "//every[1]/event[1]"
which is the value of @destination. $dest is not a node, it's a string and you can't do $dest/@name, it doesn't make sens.

As said Christoph you need to evaluate the string, and there is unfortunately no xslt 1.0 native way to do this !
You need a extension eval function depending on your xslt processor. 
If you use saxon for example, something like this should go <xsl:value-of select="saxon:eval($dest)/@name"/>.
With msxml you can do your own eval function in jscript, have a look at http://www.xmleverywhere.com/tips/xslt.htm
You can also use EXSLT extensions I think.

Hope this help, 


> Regards
> Yaswanth 
> -----Original Message-----
> From: Hofman, Peter [mailto:peter.hofman@xxxxxxxxxxxxx] 
> Sent: Wednesday, August 22, 2007 1:54 PM
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: RE:  Linking Variable to the Path 
> Your variable $dest contains a sequence of destination attributes
> values, which (of course) do not contain a name attribute.
> You need to analyze the contents of connection/@destination and use this
> in a selection of event elements.
> Regards,
> Peter
> >-----Original Message-----
> >From: Yaswanth Kumar Ravella [mailto:yaswanth.mtrx@xxxxxxxxx] 
> >Sent: woensdag 22 augustus 2007 10:16
> >To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> >Subject:  Linking Variable to the Path 
> >
> >
> >Hi,
> >
> >::I am having an XML file like this ::
> >
> ><root>
> > <every>
> >   <event name="Ready"/>
> > </every>
> > <pattern>
> >   <connection destination="//every[1]/event[1]" />		
> > </pattern>
> ></root>
> >-------------------------------
> >::When my XSL file has this code::
> >
> ><xsl:template match="root">   
> >   <xsl:variable name="dest" 	select="//every[1]/event[1]"/>   
> >   <xsl:value-of select="$dest/@name"/>   
> ></xsl:template>
> >
> >It prints 'Ready'.
> >Here I am directly assigning variable 'dest' to the path of the event.
> >This is ok.
> >-------------------------------
> >::When I changed my XSL code to ::
> >
> ><xsl:template match="root">   
> >   <xsl:variable name="dest"
> >select="//pattern[1]/connection[1]/@destination"/>   
> >   <xsl:value-of select="$dest/@name"/>   
> ></xsl:template>
> >
> >It doesn't print 'Ready' or anything.
> >Here I am storing variable 'dest' with the value of the 
> >'connection/@destination', Which I expected to work properly 
> >but it is not working.

Current Thread


Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
First Name
Last Name
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.