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

Cross-referencing

Subject: Cross-referencing
From: Leigh Dodds <ldodds@xxxxxxxxxxx>
Date: Mon, 18 Oct 1999 15:30:38 +0100
cross referencing
Hi,

First of all, thanks for the response to my previous post,
I managed to realise what I'd done wrong. Now I've got a bit
more of a thorny problem...

Consider the following xml file:

<taxa>
  <character-list>
    <character number="1">
	  <state number="1">no legs</state>
	  <state number="2">2 legs</state>
	  <state number="3">4 legs</state>
    </character>
  </character-list>
  <item id="1">
	<item-name>Chicken</item-name>
	<attribute-list>
		<attribute character="1"><value>2</value></attribute>
	</attribute-list>
  </item>
  <item id="2">
	<item-name>Worm</item-name>
	<attribute-list>
		<attribute character="1"><value>1</value></attribute>
	</attribute-list>
  </item>
</taxa>

I want to produce a stylesheet that will print out the descriptions
of each animal (item). An item has a list of attributes, which can
have a particular value (sometimes more than one, and in a range, but
ignore this for now). Each value corresponds to a state within
a character (so in the above example a chicken has two legs, and
a worm has none).

I'm attempting to write a statement to grab the text of a state after
matching the value in the attribute.

e.g.
<xsl:template match="value">
	<xsl:value-of select="...return the text of the corresponding state..." />
</xsl:template>

I've gotten as far as pulling out the character number from the
attribute parent:

ancestor-or-self::attribute/@character

(which gives '1' in the above example).

I then want to grab the text from the right state in the right character.
I tried something like:

//character[@number='ancestor-or-self::attribute/@character']/state[@number=
"text()"]

...which if I understand things correctly, should select state
elements whose number attribute is equal to the text of the
current node (which is a value element), and whose
character parent has a number attribute whose value matches the
chararacter attribute of my (the current nodes) parent.
(Confusing huh?).

Any suggestions on this? I thought I was pretty close, but
XT just whirrs away for a while and comes back with nothing.
(parser is IBMs XML4J).

Thanks!

L.

==================================================================
    "Never Do With More, What Can Be Achieved With Less"
				---William of Occam
==================================================================
Leigh Dodds                             Eml:  ldodds@xxxxxxxxxxx
ingenta ltd                             Tel:  +44 1225 826619
BUCS Building, University of Bath       Fax:  +44 1225 826283

HomePage :				 	http://www.bath.ac.uk/~ccslrd/
WebLog   :			   http://my.userland.com/viewChannel$1079
==================================================================


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


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.