Try:

 <xsl:transform
        ...
        xmlns:exsl="http://exslt.org/common";
        extension-element-prefixes="exsl"

Then:

select="exsl:node-set($listTitles)/li[$rowPos = @row]"

Mark

> -----Original Message-----
> From: CP Hennessy [mailto:[EMAIL PROTECTED]
> Sent: 30 March 2003 12:57
> To: [email protected]
> Subject: problem with Xalan & XSLT
> 
> 
> Hi,
>       I'm trying to work on an XSLT to transform an OpenOffice document
> with values in rows of a table with the first column contains a 
> title and the
> second column contains a value associated with the title. ( For various
> reasons I cannot actually put more structure than this onto the data ).
> 
> Xalan version 1.4.0
> Xerces version 2.0.0
> 
> With the xslt ( written by someone else ) from below I'm getting 
> the error :
> XObjectInvalidConversionException: Cannot convert a 
> #RESULT_TREE_FRAG to a 
> node set. (, line -1, column -1)
> which seems to be caused by the line :
>                       <xsl:variable name="ltItem" 
> select="$listTitles/li[$rowPos = @row]"/>
> 
> Thanks for any help,
> CPH
> 
> <xsl:transform
>       xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
>       xmlns:office="http://openoffice.org/2000/office"; 
>       xmlns:style="http://openoffice.org/2000/style"; 
>       xmlns:text="http://openoffice.org/2000/text"; 
>       xmlns:table="http://openoffice.org/2000/table"; 
>       xmlns:fo="http://www.w3.org/1999/XSL/Format"; 
>       xmlns:xlink="http://www.w3.org/1999/xlink"; 
>       xmlns:number="http://openoffice.org/2000/datastyle"; 
>       xmlns:chart="http://openoffice.org/2000/chart"; 
>       xmlns:dr3d="http://openoffice.org/2000/dr3d"; 
>       xmlns:form="http://openoffice.org/2000/form"; 
>       xmlns:script="http://openoffice.org/2000/script"; 
>       version="1.1">
> 
> <xsl:strip-space elements="*"/>
> 
> 
> <xsl:template match="/office:document-content/office:body">
> 
>     <xsl:variable name="listTitles">
>       <li row="1">name</li>
>       <li row="2">info</li>
>       <li row="3">action</li>
>       <li row="4">supplier</li>
>       <li row="5">ooh</li>
>       <li row="6">contact</li>
>       <li row="7">position</li>
>       <li row="8">label</li>
>       <li row="9">pc</li>
>     </xsl:variable>
> 
>     <products>
>     
>         <xsl:for-each select="table:table">
> 
>           <product>
>           
>               <xsl:for-each select="table:table-row">
> 
>                   <!-- if the first cell in the row doesn't 
> contain text, ignore it -->
> 
>                   <xsl:variable name="cellTitle" 
> select="normalize-space(table:table-cell[1]//*)"/>
>                   <xsl:variable name="cellData"  
> select="normalize-space(table:table-cell[2]//*)"/>
>                   <xsl:variable name="rowPos"    select="position()"/>
> 
>                   <xsl:if test="$cellTitle">
> 
>                       <!-- index into the above row table for the 
> element name -->
> 
>                       <xsl:variable name="ltItem" 
> select="$listTitles/li[$rowPos = @row]"/>
> 
>                       <xsl:element name="xalan:nodeset($ltItem)">
>                           <xsl:value-of select="$cellData"/>
>                       </xsl:element>
>                       
>                   </xsl:if>
> 
>               </xsl:for-each>
> 
>           </product>
> 
>       </xsl:for-each>
> 
>     </products>
> 
> </xsl:template>
> 
> </xsl:transform>      
> 
> 

Reply via email to