Subject: RE: [xsl] Move (ascend) an element From: Pieter Reint Siegers Kort <pieter.siegers@xxxxxxxxxxx> Date: Thu, 1 Jul 2004 09:46:24 -0500 |
Hi Naomi, Using an excellent example of G. Ken Holman, posted by him a couple of days ago, I modified it to the following: <?xml version="1.0" encoding="iso-8859-1"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output indent="yes"/> <xsl:template match="/figure"> <xsl:copy> <xsl:copy-of select="//indexterm"/> <xsl:apply-templates select="@*|node()"/> </xsl:copy> </xsl:template> <xsl:template match="indexterm"/> <xsl:template match="@*|node()"> <xsl:copy> <xsl:apply-templates select="@*|node()"/> </xsl:copy> </xsl:template> </xsl:stylesheet> This produces (with your XML as input, I only added an extra element <secterm>): <?xml version="1.0" encoding="UTF-16"?> <figure> <indexterm> <primary>special figure</primary> <secterm>xxx</secterm> </indexterm> <title> This is the figure caption text </title> </figure> Cheers, <prs/> -----Original Message----- From: Naomi Gronson [mailto:naomi_gronson@xxxxxxxxx] Sent: Thursday, July 01, 2004 9:23 AM To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx Subject: [xsl] Move (ascend) an element I'm trying to move the <indexterm> up in the tree, from: <figure> <title> <indexterm> <primary>special figure</primary> </indexterm> This is the figure caption text </title> </figure> to <figure> <indexterm> <primary>special figure</primary> </indexterm> <title>This is the figure caption text</title> </figure> I have code that does it part way, but won't handle any <secondary> elements that might also be contained within the <indexterm>: <xsl:template match="figure[descendant::title[descendant::indexterm]]"> <xsl:copy><indexterm><primary> <xsl:value-of select="descendant::indexterm"/></primary></indexterm> <xsl:copy-of select="@*"/> <xsl:apply-templates/> </xsl:copy> </xsl:template> <!-- remove old indexterm --> <xsl:template match="indexterm[ancestor::title[ancestor::figure]]"> </xsl:template> Is there some kind of value of select that will grab the <indexterm> and any elements under it, instead of me recreating them in my xsl? Any ideas. Thanks! Naomi __________________________________ Do you Yahoo!? New and Improved Yahoo! Mail - Send 10MB messages! http://promotions.yahoo.com/new_mail --+------------------------------------------------------------------ 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@xxxxxxxxxxxxxxxxxxxxxx> --+--
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Move (ascend) an element, Vasu Chakkera | Thread | RE: [xsl] Java namespace, xptm |
RE: [xsl] Attributes?, Andrew Curry | Date | RE: [xsl] Attributes?, Michael Kay |
Month |