[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

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


Subject: [xsl] Using for-each on user arguments [was: Re: Passing a list of arguments]
From: "Mathieu Malaterre" <mathieu.malaterre@xxxxxxxxx>
Date: Fri, 9 Nov 2007 14:51:44 +0100

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>



On Nov 9, 2007 12:19 PM, Mathieu Malaterre <mathieu.malaterre@xxxxxxxxx> wrote:
> Hello,
>
>   I have a list of arguments to pass to my XSLT. I thought that I
> could simply construct a small XML tree to do that. I do not
> understand why the list argument tree is being expanded. How was I
> supposed to do that ?
>
> Thanks
> -Mathieu
>
> test.xml:
> <?xml version="1.0" encoding="UTF-8"?>
> <article>
> </article>
>
> test.xsl:
> <?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">
>     <section>
>       <section>C.8.7.1.1.2</section>
>       <section>C.8.14.1.1</section>
>       <!-- ... -->
>     </section>
>   </xsl:variable>
>   <xsl:template match="article">
>     <xsl:param name="extract-section"/>
>     <xsl:message>
>       <xsl:value-of select="$extract-section"/>
>     </xsl:message>
>   </xsl:template>
>   <xsl:template match="/">
>     <xsl:for-each select="$sections-list">
>       <xsl:apply-templates select="article">
>         <xsl:with-param name="extract-section" select="$section"/>
>       </xsl:apply-templates>
>     </xsl:for-each>
>   </xsl:template>
> </xsl:stylesheet>
>
>
> --
> Mathieu


Current Thread
Keywords
xml