Subject: [xsl] Re: : Sibling in the Pattern(match) From: "Dimitre Novatchev" <dnovatchev@xxxxxxxxx> Date: Wed, 26 Nov 2003 07:39:23 +0100 |
I wrote (forgetting for a moment that we were speaking about a match pattern, which does not allow the preceding-sibling axis) : > > To match the preceding siblings of a Member element with name="acc11", which > is a child of a Member with name='acc1' use: > > Member[@name = 'acc1']/Member[@name='acc11']/preceding-sibling::Member Within a match pattern one would write: Member[@name = 'acc1']/Member[following-sibling::Member[@name='acc11']] So, this transformation: <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output omit-xml-declaration="yes"/> <xsl:template match="@* | node()"> <xsl:copy> <xsl:apply-templates select="@* | node()"/> </xsl:copy> </xsl:template> <xsl:template match= "Member[@name = 'acc1'] / Member[following-sibling::Member[@name='acc11']]"/> </xsl:stylesheet> when applied on this source.xml: <D> <Member comment="" name="acc1"> <Calc>+</Calc> <Member comment="" name="acc101"> <Calc>+</Calc> </Member> <Member comment="" name="acc1021"> <Calc>+</Calc> </Member> <Member comment="" name="acc11"> <Calc>+</Calc> <Member name="account3_1"/> </Member> <Member comment="" name="acc12"> <Calc>+</Calc> <Member name="acc121"/> </Member> </Member> <Member comment="" name="acc2"> <Calc>+</Calc> </Member> <Member comment="" name="acc3"> <Calc>+</Calc> <Member comment="" name="acc31"> <Calc>+</Calc> </Member> <Member comment="" name="acc11"> <Calc>+</Calc> </Member> </Member> </D> produces the wanted result, in which all preceding siblings of the "Member" with name="acc11" (which is a child of the Member with name="acc1") are removed : <D> <Member comment="" name="acc1"> <Calc>+</Calc> <Member comment="" name="acc11"> <Calc>+</Calc> <Member name="account3_1"/> </Member> <Member comment="" name="acc12"> <Calc>+</Calc> <Member name="acc121"/> </Member> </Member> <Member comment="" name="acc2"> <Calc>+</Calc> </Member> <Member comment="" name="acc3"> <Calc>+</Calc> <Member comment="" name="acc31"> <Calc>+</Calc> </Member> <Member comment="" name="acc11"> <Calc>+</Calc> </Member> </Member> </D> ===== Cheers, Dimitre Novatchev. http://fxsl.sourceforge.net/ -- the home of FXSL XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Re: : Sibling in the Pattern(, Dimitre Novatchev | Thread | Re: [xsl] Re: : Sibling in the Patt, Dongling Ding |
[xsl] Re: : Sibling in the Pattern(, Dimitre Novatchev | Date | RE: [xsl] Getting unique nodes filt, Jarno . Elovirta |
Month |