[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: xsl processing problem with multiple templates
Hi Ken -- Many thanks for the link to your book. I decided to go with the pull model as, rightly or wrongly, I felt slightly more in control. I ditched the inline data so I could generate a link to the full data contents for each fix. But I couldn't find a way of doing that *under* the for-each whilst still retaining access to the @href. So I ended up with the following which, whilst it works, is presumably reading the linked document twice just to extract the fix number and fix abstract: <ul> <xsl:for-each select="fix"> <!-- <xsl:for-each select="document( fix/@href )/fix"> --> <li> <a> <xsl:attribute name="href"> <xsl:value-of select="@href"/> </xsl:attribute> <xsl:value-of select="document( @href )/fix/number"/> </a> <br/><xsl:value-of select="document( @href )/fix/abstract"/> </li> </xsl:for-each> </ul> I'm sure there's a more efficient way, yes? i ------ Original Message ------ Received: 05:50 PM COT, 11/14/2009 From: "G. Ken Holman" <gkholman@CraneSoftwrights.com> To: <xml-dev@lists.xml.org> Subject: Re: xsl processing problem with multiple templates > At 2009-11-14 16:55 -0500, Ian S. Worthington wrote: > >The idea of pushing is new to me I'm afraid. > > In fact you are already using it because you catch a node pushed at > your stylesheet when using a template match. > > >Where should that "apply-templates" line go? > > In place of the <xsl:for-each/> > > >Obviously not here: > > > ><xsl:stylesheet version="1.0" > >xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> > > <xsl:template match="fixlist"> > > <xsl:message>Matched data root</xsl:message> > > <html> > > <body> > > <xsl:for-each select="fix"> > > <xsl:apply-templates select="fix[not(@href)] | > >document( fix/@href )/fix"/> > > <p>Change number: <xsl:value-of select="number"/></p> > > </xsl:for-each> > > </body> > > </html> > > </xsl:template> > ></xsl:stylesheet> > > Your choice .... either using pull: > > <xsl:for-each select="fix[not(@href)] | > document( fix/@href )/fix"> > <p>Change number: <xsl:value-of select="number"/></p> > </xsl:for-each> > > .. or using push: > > <xsl:stylesheet version="1.0" > xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> > <xsl:template match="fixlist"> > <xsl:message>Matched data root</xsl:message> > <html> > <body> > <xsl:apply-templates select="fix[not(@href)] | > document( fix/@href )/fix"/> > </body> > </html> > </xsl:template> > > <xsl:template match="fix"> > <p>Change number: <xsl:value-of select="number"/></p> > </xsl:template> > > </xsl:stylesheet> > > > I hope this helps. On my web site I have a free download of an > excerpt of my XSLT book where I've introduced the concepts of pull and push. > > I hope this helps. > > . . . . . . . . Ken > > -- > Vote for your XML training: http://www.CraneSoftwrights.com/x/i/ > Crane Softwrights Ltd. http://www.CraneSoftwrights.com/x/ > Training tools: Comprehensive interactive XSLT/XPath 1.0/2.0 video > Video lesson: http://www.youtube.com/watch?v=PrNjJCh7Ppg&fmt=18 > Video overview: http://www.youtube.com/watch?v=VTiodiij6gE&fmt=18 > G. Ken Holman mailto:gkholman@CraneSoftwrights.com > Male Cancer Awareness Nov'07 http://www.CraneSoftwrights.com/x/bc > Legal business disclaimers: http://www.CraneSoftwrights.com/legal > > > _______________________________________________________________________ > > XML-DEV is a publicly archived, unmoderated list hosted by OASIS > to support XML implementation and development. To minimize > spam in the archives, you must subscribe before posting. > > [Un]Subscribe/change address: http://www.oasis-open.org/mlmanage/ > Or unsubscribe: xml-dev-unsubscribe@lists.xml.org > subscribe: xml-dev-subscribe@lists.xml.org > List archive: http://lists.xml.org/archives/xml-dev/ > List Guidelines: http://www.oasis-open.org/maillists/guidelines.php > >
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] |
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
|