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

Re: [xsl] Re: Sibling in the Pattern(match)


Subject: Re: [xsl] Re: Sibling in the Pattern(match)
From: Dongling Ding <dling61@xxxxxxxxx>
Date: Mon, 24 Nov 2003 14:25:30 -0800 (PST)

> There is no restriction on the axis that can be used
> within *predicates* of
> the match pattern. The only restriction in the
> predicates (in XSLT 1.0) is
> that no variable references are allowed.
> 
> Therefore, you can specify the restricting condition
> like this:
> 
> <xsl:stylesheet version="1.0"
>  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
> 
>  <xsl:output omit-xml-declaration="yes"
> indent="yes"/>
> 
>  <xsl:strip-space elements="*"/>
> 
>   <xsl:template match="@* | node()">
>     <xsl:copy>
>       <xsl:apply-templates select="@* | node()"/>
>     </xsl:copy>
>   </xsl:template>
> 
>   <xsl:template
> match="*[not(preceding-sibling::*)]">
>     <xsl:copy>
>       <xsl:apply-templates select="@* | node()"/>
>     </xsl:copy>
>   </xsl:template>
> 
>   <xsl:template match="*[preceding-sibling::*]"/>
> </xsl:stylesheet>
> 
> When this transformation is applied on the following
> source.xml:
> 
> <a>
>   <b/>
>   <c/>
>   <d/>
> </a>
> 
> the wanted result is produced:
> 
> <a>
>    <b/>
> </a>
> 

Thanks!

It works in your example. But for my example, how can
I filter out the member "acc12"?

<xsl:template match="*[preceding-sibling::Member[@name
='acc1']/Member[@name='acc11']]"/>

It filtered members "acc2" and "acc3" instead of
"acc12" and its child "acc121"?

Here is the source XML:

<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="acc32">
			<Calc>+</Calc>
		</Member>
</Member>
</D>



Dongling





__________________________________
Do you Yahoo!?
Free Pop-Up Blocker - Get it now
http://companion.yahoo.com/

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



Current Thread
Keywords