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

RE: Finding parent of the middle child

Subject: RE: Finding parent of the middle child
From: "Brook Ellingwood" <belling@xxxxxxx>
Date: Wed, 22 Jun 2005 17:25:09 -0700
wool hiking pants
Recap: There are several section elements containing a variable number of
child elements. I want to return a count of all the child elements and
identify the mid point of all the child elements. I then want to split the
parent section elements after the parent containing the middle child.

I have this working on my local machine using MSXML, but it fails when I
convert it on the staging servers using Xalan Java 2.4.1 and I'm stumped.

Relevant XSL:
<xsl:variable name="gearMid"
select="generate-id((//rec_gear_sec/*)[round(count(//rec_gear_sec/*) div
2)])"/>

<xsl:template name="rec_gear_list">
	<xsl:for-each select="//rec_gear_sec/*">
		<xsl:if test="generate-id(.) = $gearMid">
			<xsl:variable name="splitPoint" select="count(../preceding-sibling::*)
+1"/>
			<div style="width:275; float:left;padding-right:10px;">
				<xsl:apply-templates select="//*[position() &lt; $splitPoint and
name()='rec_gear_sec']"/>
				<xsl:apply-templates select="parent::*"/>
			</div>
			<div style="width:285; float:right;">
				<xsl:apply-templates select="//*[position() &gt; $splitPoint and
name()='rec_gear_sec']"/>
			</div>
		</xsl:if>
	</xsl:for-each>
</xsl:template>

That for-each is probably a little inefficient, but the real problem is the
output. In Xalan it gets the group in the first div right, but in the second
div it gives me *all* the rec_gear_sec elements, not just the ones with a
position() greater than $splitPoint. It seems like this is a bug, and I could
really use a workaround. I've already spent far more time on this one than it
deserves. Any ideas?

-- Brook

Sample XML:

	<rec_gear_sec>
		<rec_gear_title>Official Papers</rec_gear_title>
		<rec_gear>Valid passport and visas</rec_gear>
		<rec_gear>Airline tickets</rec_gear>
		<rec_gear>International health card with immunizations</rec_gear>
	</rec_gear_sec>
	<rec_gear_sec>
		<rec_gear_title>Clothing</rec_gear_title>
		<rec_gear>Midweight wool or fleece jacket/sweater</rec_gear>
		<rec_gear>Wool or fleece pants</rec_gear>
		<rec_gear>Midweight thermal underwear top and bottom, synthetic</rec_gear>
		<rec_gear>Expedition weight thermal underwear top and bottom,
synthetic</rec_gear>
		<rec_gear>T-shirts, mix of synthetic and cotton</rec_gear>
		<rec_gear>Long-sleeve synthetic shirts</rec_gear>
		<rec_gear>Synthetic, quick-drying hiking shorts</rec_gear>
		<rec_gear>Synthetic, quick-drying hiking pants</rec_gear>
		<rec_gear>Underwear</rec_gear>
		<rec_gear>Hiking socks - wool and/or synthetic</rec_gear>
		<rec_gear>Liner socks</rec_gear>
	</rec_gear_sec>
	<rec_gear_sec>
		<rec_gear_title>Outerwear</rec_gear_title>
		<rec_gear>Waterproof, breathable jacket</rec_gear>
		<rec_gear>Waterproof, breathable pants</rec_gear>
		<rec_gear>Insulated down or synthetic filled jacket</rec_gear>
		<rec_gear>Wind jacket and/or pants (optional) </rec_gear>
	</rec_gear_sec>
	<rec_gear_sec>
		<rec_gear_title>Footwear</rec_gear_title>
		<rec_gear>Water-resistant leather hiking boots, midweight boots work
great</rec_gear>
		<rec_gear>Camp shoes - sneakers or sport sandals</rec_gear>
	</rec_gear_sec>
	<rec_gear_sec>
		<rec_gear_title>Clothing Accessories</rec_gear_title>
		<rec_gear>Balaclava or neck gaiter</rec_gear>
		<rec_gear>Wool or fleece mittens/gloves</rec_gear>
		<rec_gear>Thin gloves or mitten liners</rec_gear>
		<rec_gear>Wool or fleece hat</rec_gear>
		<rec_gear>Gaiters, knee-length</rec_gear>
		<rec_gear>Sun hat </rec_gear>
	</rec_gear_sec>
	<rec_gear_sec>
		<rec_gear_title>City Clothing</rec_gear_title>
		<rec_gear>Bring a few lightweight, easily washable items for travel and when
you are not climbing</rec_gear>
		<rec_gear>Comfortable shoes</rec_gear>
	</rec_gear_sec>
	<rec_gear_sec>
		<rec_gear_title>Travel Accessories</rec_gear_title>
		<rec_gear>Water bottles (two 1-quart) or a hydration system plus one 1 qt.
water bottle</rec_gear>
		<rec_gear>Headlamp and spare lithium batteries/bulb (no
flashlights!)</rec_gear>
		<rec_gear>Sunglasses with dark lenses</rec_gear>
		<rec_gear>Ski goggles</rec_gear>
		<rec_gear>Toilet paper (1 roll)</rec_gear>
		<rec_gear>Hand sanitizer gel</rec_gear>
		<rec_gear>Collapsible trekking poles</rec_gear>
		<rec_gear>Favorite energy snacks and powdered drinks</rec_gear>
		<rec_gear>Sunblock and lip balm with high SPF</rec_gear>
		<rec_gear>Toiletry kit</rec_gear>
		<rec_gear>Small bath towel</rec_gear>
		<rec_gear>Bio-degradable soap/shampoo</rec_gear>
		<rec_gear>Personal first-aid kit</rec_gear>
		<rec_gear>Rain cover and two large plastic trash bags for your daypack and
duffel bag </rec_gear>
	</rec_gear_sec>
	<rec_gear_sec>
		<rec_gear_title>Field Gear</rec_gear_title>
		<rec_gear>Sleeping bag rated to 100F or less </rec_gear>
	</rec_gear_sec>
	<rec_gear_sec>
		<rec_gear_title>Optional Field Gear</rec_gear_title>
		<rec_gear>Camera, lenses and lots of film</rec_gear>
		<rec_gear>Small binoculars (highly recommended)</rec_gear>
		<rec_gear>Reading and writing materials</rec_gear>
		<rec_gear>Watch with alarm or travel clock</rec_gear>
		<rec_gear>Folding-style umbrella</rec_gear>
		<rec_gear>Earplugs</rec_gear>
		<rec_gear>Bandanna</rec_gear>
		<rec_gear>Water filter equipment or iodine tablets (bottled water available
for purchase)</rec_gear>
		<rec_gear>Insect repellent with DEET</rec_gear>
		<rec_gear>Spare contact lenses or prescription glasses</rec_gear>
		<rec_gear>Ziploc bags, to protect camera, binoculars, etc. from
dust</rec_gear>
	</rec_gear_sec>
	<rec_gear_sec>
		<rec_gear_title>Luggage</rec_gear_title>
		<rec_gear>2 duffel bags, 1 large enough for all climbing gear and clothing
and a second bag with non climbing items to be left at the hotel</rec_gear>
		<rec_gear>Luggage tags and luggage locks</rec_gear>
		<rec_gear>Passport pouch or money belt</rec_gear>
		<rec_gear>Daypack, 2000-3000 cu. in. to be used during climb</rec_gear>
	</rec_gear_sec>

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.