- From: Christian Wolfgang Hujer <320027188944-0001@t-online.de>
- Date: Sun, 24 Sep 2000 15:41:22 +0200
- To: <www-xpath-comments@w3.org>
especially when using ancestor-or-self:: or ancestor::, reverse navigation
through a node-set should be possible.
example:
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- File: '_/langcodes.xml' -->
<langcodes>
<img width="50" height="30">test1</img>
<language code="de">
<img src="/gfx/de.gif">test2</img>
<name xml:lang="de">Deutsch</name>
<name xml:lang="en">German</name>
</language>
<language code="en">
<img src="/gfx/en.gif" width="60">test3</img>
<name xml:lang="de">Englisch</name>
<name xml:lang="en">English</name>
</language>
</langcodes>
I'd like to retreive the image width from an image for a certain language
code based upon upwards navigation in the node-set tree of (let
@hreflang="en")
document('_/langcodes.xml')//language[@code=current()/@hreflang]/ancestor-or
-self::*/img.
Since it is an Attribute I have to create, I can use a documented behaviour
of XSLT: "Newer" Attributes override "Older" Attributes, so
<xsl:copy-of
select="document('_/langcodes.xml')//language[@code=current()/@hreflang]/anc
estor-or-self::*/img[@width]/@width"/>
creates an Attribute 'width="60"', obviously chosen from the nearest node
(inobiously copying all width-attributes in document order, where the last
overwrites the previous ones),
while
<xsl:value-of
select="document('_/langcodes.xml')//language[@code=current()/@hreflang]/anc
estor-or-self::*/img[@width]/@width"/>
returns "50", oviously chosen from the first matching node in document
order.
I was unable to find something in XSLT and / or XPath solving this problem
in a general, attribute-independant manner. Did I miss it on my search?
Greetings
--
Christian Wolfgang Hujer
IT-Consulting, Qualifying and Individual Solutions
Voc: +49 (089) 27 37 04 37
Fax: +49 (089) 27 37 04 39
Cel: +49 (0179) 29 26 58 0
Received on Sunday, 24 September 2000 09:42:57 UTC