Subject: Re: Using <eval> to get a value for a flow object attribute From: Chris Maden <crism@xxxxxxx> Date: Thu, 7 May 1998 17:52:46 -0400 (EDT) |
[Ed Burns] > How can I use the eval tag to get an attribute from the current > element and have that be rendered as the value of an attribute in > the result output? > > This example uses HTML flow objects. Note that <SELECT> is a flow > object, not an XSL tag. (MSXSL and DOCPROC they handle this by > replacing <select> with <select-elements>.) > > <rule> > <target-element type="system"/> > <SELECT NAME="<eval>getAttribute("label")</eval>"> > <children/> > </rule> > > Is there any way to escape the enclosing quotes? More confusion brought about by "HTML flow objects". <SELECT> is an *element*, not text that looks like one. In XSL '97, it means "make a select element". NAME is an attribute of the <SELECT> element. The string '<eval>' inside an attribute value is just that, a string, not an element. Elements can not occur inside attribute values. And finally, <SELECT> is unclosed; the above sample is not a well-formed XML document (as all XSL stylesheets must be). Now, as to how to fix this: Any attribute value can start with an equals sign, and the rest of the attribute value will be evaluated as an ECMAscript expression. The quotes are a problem, and the '97 submission is unclear on the order in which things are processed. An XML parser should resolve any entity references, so you could do <SELECT NAME="=getAttribute("label")"> but I wouldn't trust MSXSL to have implemented that yet. It's worth testing, but for robustness, I'd do this: <rule> <target-element type="system"/> <SELECT NAME='=getAttribute("label")'> <children/> </SELECT> </rule> -Chris -- <!NOTATION SGML.Geek PUBLIC "-//Anonymous//NOTATION SGML Geek//EN"> <!ENTITY crism PUBLIC "-//O'Reilly//NONSGML Christopher R. Maden//EN" "<URL>http://www.oreilly.com/people/staff/crism/ <TEL>+1.617.499.7487 <USMAIL>90 Sherman Street, Cambridge, MA 02140 USA" NDATA SGML.Geek> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Using <eval> to get a value for a f, Ed Burns | Thread | Invoking XSL construction rule usin, Amit Rekhi |
Using <eval> to get a value for a f, Ed Burns | Date | Re: select-element and style-rule, Lisa Pease |
Month |