Subject: Re: [xsl] Selecting everything "before" and "after" a specific node From: Martin Honnen <Martin.Honnen@xxxxxx> Date: Thu, 02 Apr 2009 13:51:37 +0200 |
Hi, Ibve searched and posted on another list, but have not found an answer to this problemb& I have XML like this...
<A i=b1b> <B i=b2b> <C i=b3b/> </B> <B i=b4b> <C i=b5b> <D i=b6b/> <D i=b7b> <E i=b8b/> <E i=b9b msg="get me out of here!"/> <E i=b10b/> </D> <D i=b11b/> </C> <C i=b12b/> </B> </A> And I need to break it out into 3 nodesets, delimited by the <E i=b9b msg="get me out of here!"/> such that Ibd end up with... <ROOT> <BEFORE> <A i=b1b> <B i=b2b> <C i=b3b/> </B> <B i=b4b> <C i=b5b> <D i=b6b/> <D i=b7b> <E i=b8b/> </D> </C>> </B> </A> </BEFORE> <PULLED_OUT> <E id=b9b msg="get me out of here!"/> </PULLED_OUT> <AFTER> <A i=b1b> <B i=b4b> <C i=b5b> <D i=b7b> <E i=b10b/> </D> <D i=b11b/> </C> <C i=b12b/> </B> </A> </AFTER> </ROOT>
Any suggestions as to how Ibd go about that?
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:output method="xml" indent="yes"/> <xsl:strip-space elements="*"/>
<xsl:template match="/"> <ROOT> <BEFORE> <xsl:apply-templates select="*" mode="before"/> </BEFORE> <PULLED_OUT> <xsl:copy-of select="$pn"/> </PULLED_OUT> <AFTER> <xsl:apply-templates select="*" mode="after"/> </AFTER> </ROOT> </xsl:template>
<xsl:template match="*" mode="before"> <xsl:copy> <xsl:apply-templates select="@* | node()" mode="before"/> </xsl:copy> </xsl:template>
<xsl:template match="*" mode="after"> <xsl:copy> <xsl:apply-templates select="@* | node()" mode="after"/> </xsl:copy> </xsl:template>
Martin Honnen http://JavaScript.FAQTs.com/
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Selecting everything "bef, David Carlisle | Thread | [xsl] Classes and Symposium re NLM , B Tommie Usdin |
Re: [xsl] Selecting everything "bef, David Carlisle | Date | [xsl] Classes and Symposium re NLM , B Tommie Usdin |
Month |