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

RE: Repeating Code

Subject: RE: Repeating Code
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Sat, 8 Oct 2005 09:55:29 +0100
kay code
We need to know a bit more. Let's assume somenode1 and somenode2 are simple
names (rather than more complex path expressions) so that all the nodes are
children of some parent, say P; but you don't necessarily want them output
in document order. Then in XSLT 1.0 you can do:

<xsl:apply-templates select="somenode1"/>
<xsl:apply-templates select="somenode2"/>

<xsl:template match="P/*">
   <COL>
       <DATA>
          <xsl:value-of select="." />
      </DATA>
   </COL>
</xsl:template>

In 2.0 you can change the call to

 <xsl:apply-templates select="somenode1, somenode2"/>

In 2.0 you can also do it with a for-each loop:

<xsl:for-each select="somenode1, somenode2">
   <COL>
       <DATA>
          <xsl:value-of select="." />
      </DATA>
   </COL>
</xsl:for-each>

but this is only possible in 1.0 if you want the output in document order
(you can use "|" in place of ",", or do select="*" to process all the
children).

Michael Kay
http://www.saxonica.com/

> -----Original Message-----
> From: Nicholas Orr [mailto:nick@xxxxxxxxxxx] 
> Sent: 08 October 2005 06:39
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject:  Repeating Code
> 
> Can anyone tell me if it  is possible to use a for-each loop 
> (or even  
> some other sort of loop) to repeat code for a certain set of xsl  
> outputs?  For example, currently my xsl contains  :
> 
>   <COL>
>       <DATA>
>           <xsl:value-of select="somenode1" />
>      </DATA>
> </COL>
>   <COL>
>       <DATA>
>          <xsl:value-of select="somenode2" />
>      </DATA>
>   </COL>
> 
> repeating for about 30 references, and the only change is in the  
> select line.  It works fine, but I'm wondering if there isn't a way  
> to make it neater.  So I can have a list of <xsl:value-of select >  
> lines and then only have the COL and DATA parts once in the XSL file.
> 
> Thanks,
> Nick

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.