Subject: RE: [xsl] in-document references From: "Martinez, Brian" <brian.martinez@xxxxxxxx> Date: Mon, 6 Jan 2003 16:51:58 -0700 |
> From: S Woodside [mailto:sbwoodside@xxxxxxxxx] > Sent: Monday, January 06, 2003 4:07 PM > Subject: [xsl] in-document references > > I'm trying to transform a relax NG (RNG) grammar that has in-document > references (e.g. ref and define). I could just "flatten" the RNG but > I'd rather use the existing document. When I hit a ref in the > RNG XML I > do this: > > <xsl:template match="ref"> > <li>Ref: > <b><xsl:value-of select="@name"/></b> > <ul> > <xsl:apply-templates > select="//define[@name=current()/@name]" > mode="def"/> > </ul> > </li> > </xsl:template> > > which kind of works, except for a big problem. The template > rules that > are called by this are out of context. In other words, I want > to treat > them as though they are children of the element "ref" but > instead they > are treated as top-level elements in the XML file (which is true, of > course). > > How do I apply the templates and specify that the context > should be the > current node? Your current select expression tells the processor to select all 'define' nodes that are descendants of the document element. To select just descendants of the context node, do: <xsl:apply-templates select=".//define[@name=current()/@name]" mode="def"/> (This doesn't address optimization of course--this search pattern can be quite expensive.) hth, b. | brian martinez brian.martinez@xxxxxxxx | | senior gui programmer 303.708.7248 | | trip network, inc. fax 303.790.9350 | | 6436 s. racine cir. englewood, co 80111 | | http://www.cheaptickets.com/ http://www.trip.com/ | XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] in-document references, Robert Koberg | Thread | Re: [xsl] in-document references, S Woodside |
Re: [xsl] Moded Templates, S Woodside | Date | [xsl] Hello and quick question, Corey Snow |
Month |