Re: [xsl] Reference problem

Subject: Re: [xsl] Reference problem
From: "belangour abdessamad" <abdessamad.belangour@xxxxxxxxxxxxxxxxxxx>
Date: Mon, 20 Oct 2003 12:44:48 +0200
Hi Jarno,
First of all, thanks of answering me. I have copied your xslt program and
tried to run it, but the xslt processor declares 3 errors (for x unknown
namespace) so i have removed the 'x' and placed the datatypes at the start
of the document (as below) but it does not suceeded. What's wrong with this.
Can we simply make a named template (getDaTyID) with a parameter  for doing
the job?.
Thanks again.
-----------------------------------------
<xsl:template match="/">
    <document>
        <dataTypes>
            <dataType id="1" name="string"/>
            <dataType id="2" name="integer"/>
           <dataType id="3" name="float"/>
        </dataTypes>
        <xsl:apply-templates select="variables"/>
        </document>
</xsl:template>
----------------------------------------------
<xsl:template match="var">
    <xsl:copy>
      <xsl:apply-templates select="@name"/>
      <xsl:for-each select="@type">
        <xsl:element name="{local-name()}">
          <xsl:attribute name="idref">
            <xsl:value-of select="document('')/*/dataTypes/dataType[@name =
current()]/@id"/>
          </xsl:attribute>
        </xsl:element>
      </xsl:for-each>
    </xsl:copy>
</xsl:template>
-----------------------------------------

<xsl:template match="@* | node()">
    <xsl:copy>
        <xsl:apply-templates select="@* | node()"/>
    </xsl:copy>
</xsl:template>











----- Original Message ----- 
From: <Jarno.Elovirta@xxxxxxxxx>
To: <xsl-list@xxxxxxxxxxxxxxxxxxxxxx>
Sent: Monday, October 20, 2003 9:31 AM
Subject: RE: [xsl] Reference problem


> Hi,
>
> > The problem is with idref attribute. How am i going to refer
> > to these newly
> > created dataTypes nodes with their IDs ?it is possible or not ?
> > Thanks a lot.
>
> Something in the lines of
>
>   <xsl:template match="/">
>     <document>
>       <dataTypes>
>         <xsl:apply-templates
select="document('')/*/x:dataTypes/dataType"/>
>       </dataTypes>
>       <xsl:apply-templates select="variables"/>
>     </document>
>   </xsl:template>
>   <xsl:template match="var">
>     <xsl:copy>
>       <xsl:apply-templates select="@name"/>
>       <xsl:for-each select="@type">
>         <xsl:element name="{local-name()}">
>           <xsl:attribute name="idref">
>             <xsl:value-of
select="document('')/*/x:dataTypes/dataType[@name = current()]/@id"/>
>           </xsl:attribute>
>         </xsl:element>
>       </xsl:for-each>
>     </xsl:copy>
>   </xsl:template>
>   <xsl:template match="@* | node()">
>     <xsl:copy>
>       <xsl:apply-templates select="@* | node()"/>
>     </xsl:copy>
>   </xsl:template>
>   <x:dataTypes>
>     <dataType id="1" name="string"/>
>     <dataType id="2" name="integer"/>
>     <dataType id="3" name="float"/>
>   </x:dataTypes>
>
> Cheers,
>
> Jarno - VNV Nation: Arclight
>
>  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
>


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread