This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
RE: MSXML ancestor-or-self
- To: <xsl-list at lists dot mulberrytech dot com>
- Subject: RE: [xsl] MSXML ancestor-or-self
- From: "Chris Bayes" <Chris at Bayes dot co dot uk>
- Date: Wed, 7 Mar 2001 17:22:39 -0000
- Reply-To: xsl-list at lists dot mulberrytech dot com
Richard,
You can't use ancestor-or-self in this case because of the structure of you
xml. Look at it like this
<A>
<P name="hello" value="blue"/>
<B>
<P name="goodbye" value="red"/>
<P name="hello" value="green"/>
<C/>
</B>
</A>
If your context node is C then it's ancestors are B and A so you need the
preceding axis
select="preceding::P"
This will give you all P nodes so you need to add a predicate so that it
gives you only the nodes which don't have a preceding node with the same
@name.
select="preceding::P[@name != preceding::P/@name]"
Ciao Chris
XML/XSL Portal
http://www.bayes.co.uk/xml
>-----Original Message-----
>From: owner-xsl-list@lists.mulberrytech.com
>[mailto:owner-xsl-list@lists.mulberrytech.com]On Behalf Of Richard
>Mitchell
>Sent: 07 March 2001 15:12
>To: 'XSL'
>Subject: [xsl] MSXML ancestor-or-self
>
>
>Well it seems I've hit a small snag what I want
>is to get a list of variables in a scope so the
>closest is taken and passed on. The XML looks
>something like.
>
><A>
><P name="hello" value="blue"/>
> <B>
> <P name="goodbye" value="red"/>
> <P name="hello" value="green"/>
> <C/>
> </B>
></A>
>
>And my current context is C. With my output looking something like
>
>;hello=green;goodbye=red
>
>So far I've got
> <xsl:for-each select="ancestor-or-self::*/p[ what on earth can I put
>here ]">
> ;_<xsl:value-of select="@name"/>=<xsl:value-of
>select="@value"/>
> </xsl:for-each>
>But I've got stuck in the way that MSXML3 seems to be serving up
>the axis in
>document order not reverse document order like it says on P717 or Michael
>Kays
>excellent book.
>
>Any and all help would be appreciated.
>
>Richard Mitchell
>Software Developer
>http://www.vbnonline.com/
>
> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
>
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list