|
Subject: RE: [xsl] Accessing xml node data using variable From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Sat, 22 Apr 2006 10:18:18 +0100 |
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[@xml-lang=$lang]
Michael Kay
http://www.saxonica.com/
> -----Original Message-----
> From: Sanket Pattekar [mailto:sanket.pattekar@xxxxxxxxx]
> Sent: 22 April 2006 10:11
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> 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
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| [xsl] Accessing xml node data using, Sanket Pattekar | Thread | Re: [xsl] Accessing xml node data u, Sanket Pattekar |
| RE: [xsl] Is there a way to tell if, Michael Kay | Date | Re: [xsl] Accessing xml node data u, Sanket Pattekar |
| Month |