xsl-list
[Top] [All Lists]

Re: [xsl] passing several external arguments to the spreadsheet

2009-09-04 12:26:36
Hi Martin,

Exactly, the tokenize function is what I needed. I'm really grateful for that. Your example helped me a lot to start developing what I needed.

About Wendell's suggestion, yes, it would be useful if I had many languages but I think for this case I prefer to give the parameters in the command line call.

Hey, is there any way that grateful subscribers can show our gratitude? Any chance to make donations or anything of the kind? I would like to give something in exchange for the great help that I get... but I don't know what or whether that's allowed.

BTW, in my subject I wrote spreadsheet instead of stylesheet, sorry about that lapsus linguae ;)

Cheers!
Manuel

Martin Honnen wrote:
Manuel Souto Pico wrote:

Is it possible to run something like that using the param option (or, even better, to do it in the editor)? (in capitals for clarity)

$ java -jar path/to/saxon9.jar LANG=en,fr,pt input.xml spreadsheet.xsl > output.xml

I guess it must be something like that, but then, how do I get those 3 or n parameters into the spreadsheet? If it was only one parameter i would get it with

<xsl:param name="lang"/>

but as there are more than one, I guess I should put them in a kind of array and then do a for-each?

I think you should be able to pass in a string value as the parameter and then use the tokenize function to split it up into a sequence of lang values e.g.
  <xsl:param name="lang"/>
  <xsl:variable name="languages" select="tokenize($lang, ',')"/>

  <xsl:template match="xliff">
    <xsl:copy>
      <xsl:variable name="file" select="file"/>
      <xsl:for-each select="$languages">
        <xsl:apply-templates select="$file">
          <xsl:with-param name="lang" select="."/>
        </xsl:apply-templates>
      </xsl:for-each>
    </xsl:copy>
  </xsl:template>

  <xsl:template match="file">
    <xsl:param name="lang"/>
    <xsl:copy>
      <xsl:attribute name="lang" select="$lang"/>
      <xsl:copy-of select="node()"/>
    </xsl:copy>
  </xsl:template>




--~------------------------------------------------------------------
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>
--~--

<Prev in Thread] Current Thread [Next in Thread>