xsl-list
[Top] [All Lists]

Re: Processing only certain nodes in a document fragment

2004-02-18 12:28:37
This is simply a suggestion:

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
version="1.0">
                                                                                
                                             
<xsl:template match="foreach">
  <xsl:for-each select="./in/item">
    <xsl:call-template name="output">
      <xsl:with-param name="cdata" select="text()"/>
      <xsl:with-param name="do-sect" select="/foreach/do/*"/>
    </xsl:call-template>
  </xsl:for-each>
</xsl:template>
                                                                                
                                             
                                                                                
                                             
<xsl:template name="output">
  <xsl:param name="cdata"/>
  <xsl:param name="do-sect"/>
  <xsl:for-each select="$do-sect">
    <xsl:choose>
      <xsl:when test="name() ='var'">
        <xsl:value-of select="$cdata"/>
      </xsl:when>
      <xsl:otherwise>
        <xsl:element name="{name()}">
          <xsl:copy-of select="@*"/>
          <xsl:call-template name="output">
            <xsl:with-param name="do-sect" select="./*" />
            <xsl:with-param name="cdata" select="$cdata"/>
          </xsl:call-template>
        </xsl:element>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:for-each>
</xsl:template>
</xsl:stylesheet>

Hope this helps..


Rui


On Wed, 2004-02-18 at 21:26, Glenn MacGregor wrote:
Hi All,

Thanks for all the help so far! I am having a problem with the following 
document fragment:

<foreach>
<in>
<item>test1</item>
<item>test2</item>
<item>test3</item>
<item>test4</item>
<item>test5</item>
</in>
<do>
<tr><td><var/></td><td><var/></td></tr>
<tr><td><var/> Test</td><td><var/> Test</td></tr>
</do>
</foreach>

I need a template which will loop through all the <item> tags and replace the 
"<var/>" tag in the <do> section with CDATA of the current item tag echoing 
all 
the rest of the do tag to the result (without the <do> tag).

Is this possible? If there is a better way to handle this please let me know 
I 
have complete control the document, I can put any structure or XML in there.

  Thanks 




Glenn MacGregor
HighStreet Networks

-------------------------------------------------
This mail sent through IMP: http://horde.org/imp/

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
-- 
Rui Alberto L. Gonçalves <rui-l-goncalves(_at_)ptinovacao(_dot_)pt>
PT Inovação


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



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