RE: [xsl] Creating a variable based on another element value

Subject: RE: [xsl] Creating a variable based on another element value
From: Jarno.Elovirta@xxxxxxxxx
Date: Wed, 8 Oct 2003 17:11:00 +0300
Hi,

> Given this xm ldoc:
> <ve pos=1"><entrydata><text>mena</text></entrydata></ve>
> <ve pos=2"><entrydata><text>proc</text></entrydata></ve>
> <ve pos=3"><entrydata><text>security</text></entrydata></ve>
> <ve pos=4"><entrydata><text>protocal</text></entrydata></ve>
> <ve pos=5"><entrydata><text>network</text></entrydata></ve>
> <ve pos=6"><entrydata><text>lol</text></entrydata></ve>
> 
> I would like to store the position number of the <ve> tag (in 
> a variable 
> called "secpos") which contains entrydata[0]/text='Security. 

This will always return an empty node-set, you probably mean entrydata[1] or something?

> I have got the 
> ve which does this but i dont know how to extract the 
> position attribute and 
> create a variable at the same time? This is what i have got 
> at the moment:
> 
> <xsl:variable name="secpos" 
> select="viewentry[entrydata/text='Security']" />
> 
> but i need it to store the position attribute of the ve which 
> has text 
> containing security? Apologies if this question is a bit easy 
> to others but 
> i didnt know where to look..

How about

  <xsl:variable name="secpos" select="ve[entrydata/text = 'security']/@pos"/>

You didn't specify what the current context is for the evaluation, so I assume the parent element of the ve elements. Note that XPath string comparisions are not case-insensitive.

Cheers,

Jarno - Velvet Acid Christ: Fun With Knives

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


Current Thread