xsl-list
[Top] [All Lists]

RE: Can't save a node tree in a variable.

2005-07-25 08:18:53
It's just as well it doesn't, because it would loop indefinitely if this
rule were invoked, since $sorted is a document node and therefore matches
match="/".

I don't think you have understood modes. A template rule with mode="X" will
only be invoked by an apply-templates instruction with mode="X". Your rule
has mode="main", but there's no external apply-templates call with
mode="main".

Michael Kay
http://www.saxonica.com/ 

-----Original Message-----
From: John Robb [mailto:john_ok(_at_)tut(_dot_)by] 
Sent: 25 July 2005 15:22
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: Re: [xsl] Can't save a node tree in a variable.

And can you say me why in the following xsl the processor 
doesn't step 
into this template:
<xsl:template match="/" mode="main">
   <xsl:apply-templates select="$sorted" mode="main"/>
</xsl:template>

The hole xsl:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
  xmlns:msxsl="urn:schemas-microsoft-com:xslt">
      <xsl:output media-type="xml"/>
      <xsl:variable name="sorted">
              <xsl:apply-templates mode="copy" select="data/item"/>
      </xsl:variable>
      <xsl:template match="@*|node()">
              <xsl:copy>
                      <xsl:apply-templates select="@*|node()">
                              <xsl:sort select="@sector"/>
                              <xsl:sort select="@subsector"/>
                      </xsl:apply-templates>
              </xsl:copy>
      </xsl:template>
      <xsl:template match="/" mode="main">
              <xsl:apply-templates select="$sorted" mode="main"/>
      </xsl:template>
      <xsl:template match="item" mode="main">
              <xsl:for-each select="item">
                      <xsl:value-of select="."/>
              </xsl:for-each>
      </xsl:template>
</xsl:stylesheet>

Mon, 25 Jul 2005 16:18:45 +0200, Geert Josten 
<Geert(_dot_)Josten(_at_)daidalos(_dot_)nl> писал(а):

You will need to use a node-set extension function in XSLT 1.0...

Cheers,
Geert

John Robb wrote:

Can you please help me?I want to save the sorted tree in a 
variable.
Whats wrong with the following xsl:
<xsl:variable name="sorted">
        <xsl:apply-templates mode="copy" select="data/item"/>
    </xsl:variable>
    <xsl:template match="@*|node()">
        <xsl:copy>
            <xsl:apply-templates select="@*|node()" mode="copy">
                <xsl:sort select="@sector"/>
                <xsl:sort select="@subsector"/>
            </xsl:apply-templates>
        </xsl:copy>
    </xsl:template>

And then I want to perform smth. like this:$sorted/item/@sector.
How is it possible to realize such a thing?
    ---
GSM.By.COM - интернет-магазин сотовых телефонов стандарта GSM,
аксессуаров и запчастей к ним. Широкий выбор, разумные цены,
оперативная доставка. Ремонт телефонов. http://www.gsm.by.com


--~------------------------------------------------------------------
XSL-List info and archive:  
http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



-- 
Geert(_dot_)Josten(_at_)Daidalos(_dot_)nl
IT-consultant at Daidalos BV, Bleiswijk (NL)

http://www.daidalos.nl/
tel:+31-(0)10-850 12 00
fax:+31-(0)10-850 11 99

GPG: 1024D/12DEBB50


--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--


   
   
---
GSM.By.COM - интернет-магазин сотовых телефонов стандарта GSM,
аксессуаров и запчастей к ним. Широкий выбор, разумные цены,
оперативная доставка. Ремонт телефонов. http://www.gsm.by.com

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--





--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--