Firstly, packing information into structured element names is bad design.
This is what attributes are for. Don't use <title-en> and <title-nl>, use
<title xml:lang="en"> and <title xml:lang="nl">.
Secondly, this doesn't work:
<xsl:value-of select="root/{$MyTitleName}"/>
You can't use curly braces inside an XPath expression, and you can't
construct XPath expressions dynamically from strings. You want
<xsl:value-of select="root/*[name() = $MyTitleName]"/>
or if you change the design,
root/title[(_at_)xml-lang=$lang]
Michael Kay
http://www.saxonica.com/
-----Original Message-----
From: Sanket Pattekar [mailto:sanket(_dot_)pattekar(_at_)gmail(_dot_)com]
Sent: 22 April 2006 10:11
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] Accessing xml node data using variable
Hi
I have a xml file called hello.xml that looks like <?xml
version="1.0"?> <?xml-stylesheet type="text/xsl"
href="hello.xsl"?> <root> <greeting>Hello world.</greeting>
<title-en>News Title English</title-en> <title-nl>News Title
Dutch</title-nl> </root>
Then I have the stylesheet called hello.xsl that looks like
<?xml version="1.0" encoding="ISO-8859-1"?> <xsl:stylesheet
version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:variable name="lang" select="'en'" />
<xsl:variable name="MyTitleName"
select="concat('title-',$lang)"/>
<xsl:template match="/">
<head><title>Greeting</title></head>
<body>
<p>Words of greeting:<br/>
<b><i><u><xsl:value-of
select="root/greeting"/></u></i></b><br/>
<b><i><u><xsl:value-of
select="root/title-en"/></u></i></b><br/>
<b><i><u><xsl:value-of
select="root/title-nl"/></u></i></b><br/>
<b><i><u><xsl:value-of
select="root/{$MyTitleName}"/></u></i></b><br/>
</p>
</body>
</xsl:template>
</xsl:stylesheet>
Now I want to create a variable called 'MyTitleName' in the
stylesheet, that refrences my xml node. Any suggestion would
be welcome.
Sanket
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail:
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--