Re: [xsl] Reading recursive from a list

Subject: Re: [xsl] Reading recursive from a list
From: Martin Honnen <Martin.Honnen@xxxxxx>
Date: Mon, 01 Oct 2007 15:20:42 +0200
Houman Khorasani wrote:

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.


Here is an XSLT 1.0 stylesheet that has the "selection list" in the stylesheet:

<xsl:stylesheet
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
  xmlns:a="Animals"
  exclude-result-prefixes="a"
  version="1.0">

  <xsl:output method="xml" indent="yes"/>
  <xsl:strip-space elements="*"/>

  <UnitInfos xmlns="Animals">
	<Type>UNIT_LION</Type>
	<Type>UNIT_DOG</Type>
  </UnitInfos>

  <xsl:template match="@* | node()">
    <xsl:copy>
      <xsl:apply-templates select="@* | node()"/>
    </xsl:copy>
  </xsl:template>

<xsl:template match="a:UnitInfos">
<xsl:copy>
<xsl:apply-templates select="@*"/>
<xsl:apply-templates select="a:UnitInfo[a:Type = document('')/xsl:stylesheet/a:UnitInfos/a:Type]"/>
</xsl:copy>
</xsl:template>


</xsl:stylesheet>


--


	Martin Honnen
	http://JavaScript.FAQTs.com/

Current Thread