Subject: Re: CSV output - select using xpath in variable
From: Nick Leaton <nickle@xxxxxxxxx>
Date: Fri, 11 Jun 2010 09:02:07 +0100
|
Thanks. I'll have a look at evaulate.
At least 2.0 fixed the select from a parameter e.g.
$message/trade/instrument and you don't have to use a node set
function! :-)
Nick
On Fri, Jun 11, 2010 at 8:58 AM, Imsieke, Gerrit, le-tex
<gerrit.imsieke@xxxxxxxxx> wrote:
> Dear Nick,
>
> dynamic evaluation of XPath expressions is not (yet?) available in standard
> XSLT 2. Have you looked at saxon:evaluate?
> http://www.saxonica.com/documentation/extensions/functions/evaluate.html
>
> Gerrit
>
>
> On 11.06.2010 09:48, Nick Leaton wrote:
>>
>> I'm trying to get a variant on the XSLT cookbook template to output csv
>>
>>
>>
http://books.google.co.uk/books?id=6q50V7oykqEC&lpg=PP1&pg=PA240#v=onepage&q=
delimiter&f=false
>>
>> Page 240-241
>>
>> It uses XSLT 2.0 and parts of it are quite neat.
>>
>> I like the idea of importing a generic module, and then defining the
>> columns to export in the importing module.
>>
>> I want to extend it to hand different delimiters, in the same way, and
>> also different line terminators.
>>
>> The next extension is correctly quoting the output if it containts
>> quotes in strings etc.
>>
>> So far, I can do this.
>>
>> However, there is one problem I can't solve.
>>
>> My input data is not regular, but CSV output needs to be regular. So I
>> want to defined the column names like this
>>
>> <xsl:variable
>> name="columns"
>> select="
>> 'trade',
>> 'trade',
>> 'currency',
>> 'isin'
>> "
>> as="xs:string*"
>> />
>>
>> and the path names to get the data like this
>>
>>
>> <xsl:variable
>> name="nodepaths"
>> select="
>> 'tradeid',
>> 'trader',
>> 'currency',
>> 'instrument/isin'
>> "
>> as="xs:string*"
>> />
>>
>> The interesting part is the isin. To get the path from the input
>> fragment, it is an xpath.
>>
>> So if I had
>>
>> <xsl:variable name="path" select="instrument/isin" as="xs:string"/>
>>
>> and
>>
>> <xsl:variable name="message">
>> <message>
>> <trade>
>> <tradeid>1</tradeid>
>> <trader>Nick</trader>
>> <currency>USD</currency>
>> <instrument>
>> <isin>US0123456789</isin>
>> </instrument>
>> <trade>
>> </message>
>> <xsl:variable>
>>
>> I want to do something like
>>
>> <xsl:value-of select="$message/$path"/>
>>
>> and have it return US0123456789
>>
>> What's the best way?
>>
>> --
>> Nick
>>
>
> --
> Gerrit Imsieke
> Geschdftsf|hrer / Managing Director
> le-tex publishing services GmbH
> Weissenfelser Str. 84, 04229 Leipzig, Germany
> Phone +49 341 355356 110, Fax +49 341 355356 510
> gerrit.imsieke@xxxxxxxxx, http://www.le-tex.de
>
> Registergericht / Commercial Register: Amtsgericht Leipzig
> Registernummer / Registration Number: HRB 24930
>
> Geschdftsf|hrer: Gerrit Imsieke, Svea Jelonek,
> Thomas Schmidt, Dr. Reinhard Vvckler
>
>
--
Nick
| <- Previous | Index | Next -> |
| Re: CSV output - select using, Imsieke, Gerrit, le-
|
Thread |
Re: CSV output - select using, Imsieke, Gerrit, le-
|
| Re: CSV output - select using, Imsieke, Gerrit, le-
|
Date |
Re: CSV output - select using, Imsieke, Gerrit, le-
|
|
Month |
|
|