Re: [xsl] Nodesets in XSLT 1.1 and 1.0

Subject: Re: [xsl] Nodesets in XSLT 1.1 and 1.0
From: Geert Bormans <geert@xxxxxxxxxxxxxxxxxxx>
Date: Tue, 22 Jun 2010 22:28:19 +0200
strange, I tested this
<xsl:variable name="data" xmlns="">

on both Saxon 6.5.5 and 9.2 prior to posting
and it works,
I see no explanation why it would not work at your end

the other option indeed is keeping the data in the excel namespace and do as you just did
it should not matter


cheers

At 22:23 22/06/2010, you wrote:
That didn't work but this did...
Thanks for helping me think through this...

<xsl:stylesheet version="1.1"
  xmlns="urn:schemas-microsoft-com:office:spreadsheet"
  xmlns:default="urn:schemas-microsoft-com:office:spreadsheet"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
  xmlns:exslt="http://exslt.org/common";>

  <xsl:variable name="data">
    <root>
      <test>1000</test>
      <test>2000</test>
      <test>3000</test>
      </root>
    </xsl:variable>

    <xsl:template match="/">
      <xsl:for-each select="$data//default:test">
        <xsl:value-of select="."/>
      </xsl:for-each>
    </xsl:template>

</xsl:stylesheet>


----- Original Message ---- From: Geert Bormans <geert@xxxxxxxxxxxxxxxxxxx> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx Sent: Tue, June 22, 2010 4:13:38 PM Subject: Re: [xsl] Nodesets in XSLT 1.1 and 1.0

well, also the variable is in that default namespace

try this
<xsl:variable name="data" xmlns="">


At 22:11 22/06/2010, you wrote: >...Thanks! That solved this simply case. > >My actual case (in which do not have this typo!) is more like the >following, having a default namespace of >xmlns="urn:schemas-microsoft-com:office:spreadsheet" >It appears this is the issue. When I remove that default namespace >declaration the node-set thing works just fine. >So my issue is how to reference the $data variable given this >default namespace declaration... > ><xsl:stylesheet version="1.1" >xmlns="urn:schemas-microsoft-com:office:spreadsheet" >xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; >xmlns:exslt="http://exslt.org/common";> > > <xsl:variable name="data"> > <root> > <test>1000</test> > <test>2000</test> > <test>3000</test> > </root> > </xsl:variable> > > <xsl:template match="/"> > <xsl:for-each select="$data/root/test"> > <xsl:value-of select="."/> > </xsl:for-each> > </xsl:template> > ></xsl:stylesheet> > > >----- Original Message ---- >From: Geert Bormans <geert@xxxxxxxxxxxxxxxxxxx> >To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx >Sent: Tue, June 22, 2010 2:49:01 PM >Subject: Re: [xsl] Nodesets in XSLT 1.1 and 1.0 > >not commenting on why you should not use XSLT1.1, >you have a typo in your for-each > > <xsl:for-each select="."/> > >should be > <xsl:value-of select="."/> >or > <xsl:copy-of select="."/> > > >At 20:41 22/06/2010, you wrote: > > <xsl:stylesheet version="1.1" > xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; > xmlns:exslt="http://exslt.org/common";> > > > > <xsl:variable name="data"> > > <root> > > <test>1000</test> > > <test>2000</test> > > <test>3000</test> > > </root> > > </xsl:variable> > > > > <xsl:template match="/"> > > <xsl:for-each select="$data/root/test"> > > <xsl:for-each select="."/> > > </xsl:for-each> > > </xsl:template> > > </xsl:stylesheet>

Current Thread