[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: Looping and assigning into variable

Subject: Re: Looping and assigning into variable
From: Jeni Tennison <jeni@xxxxxxxxxxxxxxxx>
Date: Thu, 28 Mar 2002 17:10:18 +0000
apply template mode variable
Hi Venkat,

> Actually I had to concatenate 2 child elements for each header and
> concatente result with previous one. So according to your suggestion
> I have to do like,
>
>   <Comments>
>     <xsl:for-each select="Header">
>       <xsl:value-of select="concat(RefNo,Comment)" />
>     </xsl:for-each>
>   </Comments>
>
> Is that correct?

Yes, that's correct.

> So Is it good way to apply template on same match, mutiple times in
> the same document as :
>
>    <xsl:for-each select="Header">
>       -- do some thing --
>    </xsl:for-each>
>
>    <Comments>
>         <xsl:for-each select="Header">
>             <xsl:value-of select="concat(RefNo,Comment)" />
>         </xsl:for-each>
>    </Comments>  

Yes, that's one way of doing it. Another way would be to use modes and
apply templates in one mode to generate the 'body', and one mode to
get the comments:

  <xsl:apply-templates select="Header" mode="body" />
  <Comments>
    <xsl:apply-templates select="Header" mode="comment" />
  </Comments>

Then have templates in the different modes for the different kinds of
processing of the same Header elements:
  
<xsl:template match="Header" mode="body">
  -- do something --
</xsl:template>

<xsl:template match="Header" mode="comment">
  <xsl:value-of select="concat(RefNo, Comment)" />
</xsl:template>

> I had the impression that XSLT processor parses input XML in SAX
> manner thus it matches an Element and applies relavant template only
> once. Am I wrong?

Yes, you're wrong. The XSLT processor reads in the entirety of an XML
document and stores it in a node tree, which is much like a DOM. You
can then process each node as many times as you like, in separate
xsl:for-eaches or in different modes to do different things. In the
XPaths in your stylesheet, you can jump back and forth in the node
tree to your heart's content.

Cheers,

Jeni

---
Jeni Tennison
http://www.jenitennison.com/


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.