On 4/5/06, Tomas Kolaci <kolaci(_at_)cncz(_dot_)cz> wrote:
Hi!
I'm using XSLT 1.1 and Saxon 6.5.3.
I have following XML structure:
<root>
<body>
<item pos="1" name="n1"/>
<item pos="2" name="n2"/>
<item pos="3" name="n2"/>
<item pos="4" name="n3"/>
<item pos="5" name="n4"/>
</body>
<item-filter>
<allow-items with-name="n2"/>
<allow-items with-name="n4"/>
</item-filter>
</root>
and in template:
<xsl:template match="body">
<xsl:variable
name="filtered-items"
select="item[/root/item-filter/allow-items[(_at_)with-name = ???/@name]"
/>
...
</xsl:template>
I'm trying to fill variable filtered-items with elements item with "allowed"
name (= there is an element /root/item-filter/allow-items with attribute
@with-name containing same value as item's @name)*, but I don't know how to
reach current item on ??? position in my select (function current() points
to current body element).
use current()/item-filter/allow-items/@with-name
alternatively create a key
<xsl:key name="allowed-items" match="allow-items" use="@with-name"/>
and then check if the node exists in the key with that value
select="item[key('allowed-items', @name)]"
cheers
andrew
--~------------------------------------------------------------------
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>
--~--