Re: [xsl] Using for-each on user arguments [was: Re: Passing a list of arguments]

Subject: Re: [xsl] Using for-each on user arguments [was: Re: Passing a list of arguments]
From: "Andrew Welch" <andrew.j.welch@xxxxxxxxx>
Date: Fri, 9 Nov 2007 14:06:27 +0000
On 09/11/2007, Mathieu Malaterre <mathieu.malaterre@xxxxxxxxx> wrote:
> Ok
>
>   Maybe with a more explicit title I'll get some help. Basically I am
> trying to avoid writting an infinite <xsl:if test="arg1 or arg2 or
> arg3 ... ">. So as a procedurial guy I thought of doing a list of user
> defined values to iterate over. This lead me to (*), but of course
> this cannot be working since I got mixup in between my user input arg
> list, and the real XML document I am trying to parse.
>
>   Thanks for help
> -Mathieu
>
> (*)
> <?xml version="1.0" encoding="UTF-8"?>
> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; version="2.0">
>   <xsl:output method="xml" indent="yes" encoding="UTF-8"/>
>   <xsl:variable name="sections-list">
>     <args>
>       <arg>C.8.7.1.1.2</arg>
>       <arg>C.8.14.1.1</arg>
>     </args>
>   </xsl:variable>
>   <xsl:template match="article">
>     <xsl:param name="extract-section"/>
>     <el>
>       <xsl:value-of select="$extract-section"/>
>     </el>
>   </xsl:template>
>   <xsl:template match="/">
>     <e>
>       <xsl:for-each select="$sections-list/args/arg">
>         <xsl:apply-templates select="article">
>           <xsl:with-param name="extract-section" select="."/>
>         </xsl:apply-templates>
>       </xsl:for-each>
>     </e>
>   </xsl:template>
> </xsl:stylesheet>

I think you are asking for:

<xsl:apply-templates select="article/*[name() = $sections-list/args/arg]"/>

...so you want the children of <article> in your input XML that have
the same name as any of the <arg> elements in your $sections-list

If that not what you want, you need to approach your question from the
opposite angle - show what you want to achieve and not how you think
you need to get there.


cheers
-- 
Andrew Welch
http://andrewjwelch.com
Kernow: http://kernowforsaxon.sf.net/

Current Thread