[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

RE: [xsl] Moving elements during identity transformation


Subject: RE: [xsl] Moving elements during identity transformation
From: "Praveen Chauhan" <praveen.chauhan@xxxxxxxxxxxxxx>
Date: Thu, 2 Sep 2010 15:35:15 +0530

Hi Martynas,

You can update your xslt with below code
 

      <xsl:template match="Index">
      <xsl:apply-templates select="//ToC" mode="disp"/>
      
      <xsl:copy>
         <xsl:apply-templates select="@* | node()"/>
      </xsl:copy>
   </xsl:template>
   
   <xsl:template match="ToC"/>
   
   <xsl:template match="ToC" mode="disp">
         <xsl:apply-templates/>
   </xsl:template>

Please let me know if its not fulfills your requirements.

Thanks
Praveen Chauhan
Aptara (India)

-----Original Message-----
From: Martynas Jusevicius [mailto:martynas.jusevicius@xxxxxxxxx] 
Sent: Wednesday, September 01, 2010 9:20 PM
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: [xsl] Moving elements during identity transformation

Hey list,

I'm doing an identity transformation which cleans up, filters and moves
around elements from my source document.

Let's say there is <ToC> anywhere in the document, and from there it has to
be moved directly *before* <Index> element, wherever that one is.

What I'm doing is this:

        <xsl:template match="Index">
		<xsl:apply-templates select="/ToC"/> <!-- lets just say this
selects ToC -->
		<xsl:copy>
                    <xsl:apply-templates select="@* | node()"/>
		</xsl:copy>
	</xsl:template>

So the <ToC> is now at its new location, but the old one has still to be
removed:

        <xsl:template match="ToC"/>

Now the problem is, this will also remove the new <ToC>. Since this is a
identity transformation, I don't want to use <xsl:copy-of>, as some of the
<ToC> descendants might also need processing.

What do you do in such situation?
The only thing I can think of is introducing some parameter like $keep in
the <ToC> template and then pass it from the <Index> template to
differentiate between the two cases.

Thanks,

Martynas
semantic-web.dk


Current Thread
Keywords