xsl-list
[Top] [All Lists]

Re: [xsl] Selecting the first node set

2006-08-05 05:09:02
See Comments interspersed below as to why you get the results you do.

Cheers...Hugh

CyberSpace Industries 2000 Inc.
XML Training and Consulting

----- Original Message ----- From: "Fraser Goffin" <goffinf(_at_)hotmail(_dot_)com>
To: <xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com>
Sent: Saturday, August 05, 2006 7:21 AM
Subject: [xsl] Selecting the first node set


Given the following simplified XML instance, can anyone suggest an expression that will return ONLY the 'Value' node containing <enum> children with values A, B and C. I can't rely on the name of the parent node of <Value> hence I have deliberately named these as UnknownNameX or any other intervening structure.

<Trade>
<UnknownName1>
<Value>
<enum>A</enum>
<enum>B</enum>
<enum>C</enum>
</Value>
</UnknownName1>
<UnknownName2>
<Value>/Trade//Value[ancestor::Trade]</Value>
</UnknownName2>
<Treatment>
<UnknownName3>
<Value>
<enum>D</enum>
<enum>E</enum>
<enum>F</enum>
</Value>
</UnknownName3>
</Treatment>
</Trade>


/Trade//Value        - returns all 3 <Value> nodes

This returns any node named Value that is a descendent of Trade ( there are three node sets)

/Trade//Value[1]    - also returns all 3 <Value> nodes (why is that ?)

For this one - where there are three node sets - it returns the first of each set

/Trade//Value[2]    - returns nothing (why is that ?)

For this one - where there are three node sets - it returns the second of each set - there are none.

Cheers

Fraser.



--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--