Subject: Re: Finding the first non-empty node
From: Jeni Tennison <jeni@xxxxxxxxxxxxxxxx>
Date: Thu, 15 Aug 2002 16:36:54 +0100
|
Hi Joe,
> Is there a test for finding the position of the first tag that
> contains data? The example would be as follows:
>
> <root>
> <tag1/>
> <tag1/>
> <tag1/>
> <tag1>This one has data</tag>
> <tag1>This one has data</tag>
> <tag1>This one has data</tag>
> </root>
>
> So I would like position 4 returned. Thank you
(That isn't well-formed -- you have 'tag1' start tags and 'tag' end
tags.)
You can find all the 'tag' elements that contain some text with:
tag[string()]
You can find the first such 'tag' element with:
tag[string()][1]
To get its position, you could count how many preceding sibling 'tag'
elements it has, and add one (to get the normal 1-based counting
scheme):
count( tag[string()][1]/preceding-sibling::tag ) + 1
Cheers,
Jeni
---
Jeni Tennison
http://www.jenitennison.com/
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|