Subject: RE: Selecting an attribute value from a variable
From: "Chris Hicks" <chrish2000@xxxxxxxxxxxxxx>
Date: Fri, 7 Jan 2005 21:04:52 +1100
|
Thanks Michael,
Yes, I'm dealing with poorly formed XML output from a program I have no
control over changing.
As you can imagine its a baptism of fire for me learning how to format this
nasty XML!
Thanks again for your help this time and previously.
Cheers,
Chris
> -----Original Message-----
> From: Michael Kay [mailto:mike@xxxxxxxxxxxx]
> Sent: Friday, 7 January 2005 8:58 PM
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: RE: Selecting an attribute value from a variable
>
> Variables hold values, not XPath expressions.
>
> Many processors have a dyn:evaluate() extension that allows
> you to construct and evaluate an XPath expression
> dynamically, but you don't need it here.
>
> Use
>
> @*[name()=$var]
>
> Incidentally, it's poor practice to represent information by
> means of a sub-syntax within element and attribute names. You
> should be using child elements of the form
>
> <LastId Page="1">12</LastId>
>
> But we all sometimes need to deal with badly-designed XML.
>
> Michael Kay
> http://www.saxonica.com/
>
>
> > -----Original Message-----
> > From: Chris Hicks [mailto:chrish2000@xxxxxxxxxxxxxx]
> > Sent: 07 January 2005 09:19
> > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> > Subject: Selecting an attribute value from a variable
> >
> > Hi,
> >
> > I'm building a variable in xslt like this:
> >
> > <xsl:variable name="previouspagelastid"
> > select="concat('@Page',string(@pageNumber - 1),'LastID')"/>
> >
> > To refer to an attribute in an xml node that I know exists
> > (@Page1LastID for example).
> >
> > The root node of my template match looks like this:
> >
> > <results pageNumber="2" pageCount="3" pageSize="10" resultCount="30"
> > criteria="" Page1LastID="12" Page2LastID="" Page3LastID=""
> > Page4LastID=""
> > Page5LastID="" Page6LastID="">
> >
> > I'm not sure if its possible but after I declare this
> variable I want
> > to get its value, ie. "12"
> >
> > Any ideas?
> >
> > Cheers,
> >
> > Chris
|