XML.orgXML.org
FOCUS AREAS |XML-DEV |XML.org DAILY NEWSLINK |REGISTRY |RESOURCES |ABOUT
OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]
Re: [xml-dev] 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: [xml-dev] 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]


News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 1993-2007 XML.org. This site is hosted by OASIS