xsl-list
[Top] [All Lists]

Re: Reference problem

2003-10-20 03:44:48
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[(_at_)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(_dot_)Elovirta(_at_)nokia(_dot_)com>
To: <xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com>
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[(_at_)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



<Prev in Thread] Current Thread [Next in Thread>