[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: in-document references
> From: S Woodside [mailto:sbwoodside@xxxxxxxxx] > Sent: Monday, January 06, 2003 4:07 PM > Subject: 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
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|