Hi Mark,
OK, I've tried using this but I get the error :
XalanXPathException: The specified function is not available:
http://exslt.org/common:nodeset (file:///home/yamed/tmp/dtd/xvt.xsl,
line 70, column 87)
To solve this I think that I need to have common.dtd ( or .mod ) in the local
directory, but when I download exsl.zip from exsl.org it does not contain
such a file. What am I doing wrong ?
Thanks
CPH
On Monday 31 March 2003 01:59, Mark Weaver wrote:
> 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>