Keys are cool too:
<stylesheet version="1.0"
xmlns="http://www.w3.org/1999/XSL/Transform"
xmlns:ani="Animals">
<key name="ani:mals" match="ani:UnitInfo" use="ani:Type"/>
<template match="ani:UnitInfos">
<copy>
<apply-templates/>
</copy>
</template>
<template match="ani:Type">
<!-- trap the context node's contents: -->
<param name="ani:type" select="."/>
<!-- switch the context document for the key: -->
<for-each select="document('animals-list.xml')">
<copy-of select="key('ani:mals', $ani:type)"/>
</for-each>
</template>
</stylesheet>
~ Scott
-----Original Message-----
From: Michael Kay [mailto:mike(_at_)saxonica(_dot_)com]
Sent: Monday, October 01, 2007 8:42 AM
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: RE: [xsl] Reading recursive from a list
Ignoring namespaces, it's:
<xsl:copy-of select="/AllUnitInfos/UnitInfos/UnitInfo[Type =
document('selection.xml')/UnitInfos/Type"/>
In 2.0, specify xpath-default-namespace="Animals".
In 1.0, prefix each name in the expression above with "a:" and bind
xmlns:a="Animals" in the stylesheet.
Michael Kay
http://www.saxonica.com/
Input file:
<AllUnitInfos xmlns="Animals">
<UnitInfos>
<UnitInfo>
<Class>UNITCLASS_LION</Class>
<Type>UNIT_LION</Type>
<bla/>
</UnitInfo>
<UnitInfo>
<Class>UNITCLASS_CAT</Class>
<Type>UNIT_CAT</Type>
<bla/>
</UnitInfo>
<UnitInfo>
<Class>UNITCLASS_WOLF</Class>
<Type>UNIT_WOLF</Type>
<bla/>
</UnitInfo>
<UnitInfo>
<Class>UNITCLASS_DOG</Class>
<Type>UNIT_DOG</Type>
<bla/>
</UnitInfo>
<UnitInfos>
</AllUnitInfos>
My Selection list:
<UnitInfos xmlns="Animals">
<Type>UNIT_LION</Type>
<Type>UNIT_DOG</Type>
</UnitInfos>
According to my selection List, I would like to copy all
UnitInfo elements with their children that have a type
element which is listed in
the small list above.
Output should be this:
<AllUnitInfos xmlns="Animals">
<UnitInfos>
<UnitInfo>
<Class>UNITCLASS_LION</Class>
<Type>UNIT_LION</Type>
<bla/>
</UnitInfo>
<UnitInfo>
<Class>UNITCLASS_DOG</Class>
<Type>UNIT_DOG</Type>
<bla/>
</UnitInfo>
<UnitInfos>
</AllUnitInfos>
The list above could be placed in a file or anywhere that
would make it possible/easier.
Many thanks for any idea,
Houman
Tribold News Alert! Tribold Accelerates Growth With New CEO
Appointment.
Tribold Limited. Registered Office: Carmelite, 50 Victoria
Embankment, Blackfriars, London EC4Y 0DX, United Kingdom.
Registered in England and Wales No: 4942611
--~------------------------------------------------------------------
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>
--~--
--~------------------------------------------------------------------
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>
--~--