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

[xsl] Searching for an attribute used across different elements $5 PAYPAL for correct answer!


Subject: [xsl] Searching for an attribute used across different elements $5 PAYPAL for correct answer!
From: "David Glover" <david@xxxxxxxxxxxxxxxxx>
Date: Thu, 19 Jul 2001 18:16:20 +0100

I have a Products XML file that is of the following simple form :
<BRAND>
	<LINE ID="1">
		<ITEM OFFER="BUYXGET1FREE"/>
		<ITEM/>
		<ITEM/>
		<ITEM/>
	</LINE>
	<LINE ID="2">
		<ITEM/>
		<ITEM/>
		<ITEM/>
		<ITEM/>
	</LINE>
	<LINE ID="3" OFFER="BUYXGET1FREE">
		<ITEM/>
		<ITEM/>
		<ITEM/>
		<ITEM/>
	</LINE>
</BRAND>

At any level an @OFFER attribute is used to indicate a special deal
applicable to the whole level and its children.

I wish to return all brands/lines/items that have this @OFFER attribute.
If it is an ITEM I wish to return its parent LINE and grandparent BRAND as
well.  If it is a LINE, I wish to return its child ITEMs and parent BRAND as
well.  If it is BRAND I wish it to return its child LINEs and its
grandchildren ITEMs. I DO NOT WANT any siblings of the matched element.

I've tried the following 2 patterns :

//BRAND/LINE[@OFFER] | //BRAND/LINE[ITEM[@OFFER]] |
//BRAND/LINE[ITEM[@OFFER]]
The problem with this was, that siblings were returned.

//*[@OFFER]
The problem with this was it failed to return parents of the matched items.

Given the above example XML and the correct XPATH expression I'm looking for
the following returned XML :
<BRAND>
	<LINE ID="1">
		<ITEM OFFER="BUYXGET1FREE"/>
	</LINE>
	<LINE ID="3" OFFER="BUYXGET1FREE">
		<ITEM/>
		<ITEM/>
		<ITEM/>
		<ITEM/>
	</LINE>
</BRAND>

Payment to the 1st geezer with the RIGHT answer.
ENTERNALLY greatful for any help offered! :)


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



Current Thread
Keywords