xsl-list
[Top] [All Lists]

RE: Repeating Code

2005-10-08 01:55:29
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(_at_)goya(_dot_)com(_dot_)au] 
Sent: 08 October 2005 06:39
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] 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

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--





--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



<Prev in Thread] Current Thread [Next in Thread>