[xsl] Preceding axis conumdrum

Subject: [xsl] Preceding axis conumdrum
From: "Ed Yau" <eyau@xxxxxxxxxxxxxxx>
Date: Fri, 25 Aug 2006 20:36:31 +0100
Hi,

Having a bit of a problem with this axis expression.  What I want to do
is from <row rowNumber="5">, is to copy down the value of the 'nearest
cell with non-blank columnHeader="ItemCost".

The expression I am trying to use to select that value is:

Preceding-sibling::row/cell[@columnHeader='ItemDate'][not(string-length(
normalize-space(.))=0)][1]

Maybe I'm misunderstanding the axis, but I really can't understand why
this doesn't work. In this case I seem to get '7 May' rather than what I
want '11 May'.  I'm using Saxon8.0 to process this.  Have I found a bug?


					<row rowNumber="2">
						<cell
columnHeader="ItemCost">0.341</cell>
						<cell
columnHeader="ItemDuration">40:02</cell>
						<cell
columnHeader="ItemDestination">National</cell>
						<cell
columnHeader="ItemNoDialled">01415871046</cell>
						<cell
columnHeader="ItemTime">18:50</cell>
						<cell
columnHeader="ItemDate">7 May</cell>
					</row>
					<row rowNumber="3">
						<cell
columnHeader="ItemCost">0.389</cell>
						<cell
columnHeader="ItemDuration">45:39</cell>
						<cell
columnHeader="ItemDestination">Local</cell>
						<cell
columnHeader="ItemNoDialled">01294272776</cell>
						<cell
columnHeader="ItemTime">19.31</cell>
						<cell
columnHeader="ItemDate">11 May</cell>
					</row>
					<row rowNumber="4">
						<cell
columnHeader="ItemCost">0.172</cell>
						<cell
columnHeader="ItemDuration">8:25</cell>
						<cell
columnHeader="ItemDestination">Local</cell>
						<cell
columnHeader="ItemNoDialled">01294217616</cell>
						<cell
columnHeader="ItemTime">08:54</cell>
						<cell
columnHeader="ItemDate"></cell>
					</row>
					<row rowNumber="5">
						<cell
columnHeader="ItemCost">0.237</cell>
						<cell
columnHeader="ItemDuration">3:42</cell>
						<cell
columnHeader="ItemDestination">National Rate Call</cell>
						<cell
columnHeader="ItemNoDialled">08706099000</cell>
						<cell
columnHeader="ItemTime">13:53</cell>
						<cell
columnHeader="ItemDate"/>
					</row>

Many thanks,
   Ed

Current Thread