Moin Markus!

Sticker, Markus / Kuehne + Nagel / Ham MI-EC /external schrieb am
06.10.2010 um 15:40 (+0200):
> 
> I have a problem to fill a variable with nodes from a template.
> After that I want to call this variable to place this nodes.
> But what I get is a long String.

That's probably because you do not yet know that you want xsl:copy-of
instead of xsl:value-of.

> <xsl:stylesheet version="2.0"

Be aware that Xalan is XSLT 1.0; for 2.0, you need Saxon, Altova,
XQSharp, or, IIRC, some Intel or IBM enterprise package.

>       <xsl:output method="xml"/>
>       <xsl:template match="/">
> 
> <!-- this works fine  -  start -->
>               <xsl:variable name="def" as="node()*">

Note that *as="..."* is a 2.0 feature.

>                       <bo>
>                               <item>1</item>
>                               <boline>4</boline>
>                               <totals>6</totals>
>                       </bo>
>               </xsl:variable>
> 
> <xsl:value-of select="{exslt:node-set($def)/bo/item}"/>

And with 2.0, you wouldn't need the node-set extension, because in 2.0
the RTF (result tree fragment) has been abolished, and your variable
would be a full-fledged node set.

> <!-- this works fine  -  end -->
> 
> <!-- this is the part -  start -->

Drop the part I snipped.

> XML-file
> -----------
> 
> <?xml version="1.0" encoding="UTF-8"?>
> <doc xmlns="http://somewhere.com/v_1_6/outgen";>
>     <Headlines id="23467201">Dog bites man</Headlines>
>     <Headlines id="23423441">Man bites dog</Headlines>
> </doc>

Try this:

  xsl:copy-of select="/a:doc/a:Headlines"/>

Or this, if the doc is not your primary input:

  <xsl:copy-of select="document( $doc-uri )/*/*"/>

-- 
Michael Ludwig
  • XSLT-Problem: How t... Sticker, Markus / Kuehne + Nagel / Ham MI-EC /external
    • Re: XSLT-Probl... Michael Ludwig

Reply via email to