[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

RE: MSXML ancestor-or-self

Subject: RE: MSXML ancestor-or-self
From: Richard Mitchell <Richard.Mitchell@xxxxxxxxxxxxx>
Date: Wed, 7 Mar 2001 17:56:24 -0000
richard a mitchell
First of all thanks Chris...

Ok my example is a bit poor sorry for that but really my context is
C with a file like...

<A>
 	<P name="hello" value="blue"/>
	<P name="aval" value="uppest"/>
	<B>
		<P name="bval" value="upper"/>
		<P name="goodbye" value="red"/>
		<P name="hello" value="green"/>
		<C>
			<P name="goodbye" value="yellow"/>
		</C>
		<P name="goodbye" value="orange"/>
	</B>
</A>

Expecting output like...
;goodbye=yellow;hello=green;bval=upper;hello=uppest

I've just experimented a little with the | operator but can't get
anything sensible out of it

> 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@xxxxxxxxxxxxxxxxxxxxxx
> >[mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx]On Behalf Of Richard
> >Mitchell
> >Sent: 07 March 2001 15:12
> >To: 'XSL'
> >Subject:  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
> 

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


Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.