Re: [xsl] XPath count function in JavaScript

Subject: Re: [xsl] XPath count function in JavaScript
From: Marcus Andersson <marcus@xxxxxxxxxx>
Date: Thu, 06 May 2004 11:58:50 +0200
The following will print 2.

<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; version="1.0">


<xsl:output method="text"/>

  <xsl:template match="/">
    <xsl:value-of select="count(//*[@fnamn='Tomas'])"/>
  </xsl:template>

</xsl:stylesheet>

/Marcus

Tomas Olsson wrote:
ok

I do like that now, but then another problem appeard.

my xsl is now like this:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; version="1.0">
  <xsl:output method="text"/>
    <xsl:variable name="fnamn-count" select="count(//*[@fnamn='Tomas'])"/>
</xsl:stylesheet>

and my xml doc:
<Katalog>
  <Person fnamn="Tomas" enamn="Olsson" tfn="026-789536">
    <Adress adress="Norrav. 34" postnr="50623" postort="Soderhamn"/>
    <Cv>Har arbetat som konsult hos microsoft sedan barnsben</Cv>
  </Person>
  <Person fnamn="Tomas" enamn="Orre" tfn="026-782576">
    <Adress adress="Sodrav. 34" postnr="50323" postort="Gavle"/>
    <Cv>Har arbetat som stadare hos ericsson</Cv>
  </Person>
.
.
.

when I use xml.transformNode(xsl) the result will be a list with the Cv- text, like:
Har arbetat som konsult hos microsoft sedan barnsbenHar arbetat som stadare hos ericsson....


What is wrong?

/Tomas

At 18:07 2004-05-05 -0400, you wrote:
Hello Tomas,

Why can't just issue this xpath within XSL directly?

<xsl:variable name="fnamn-count" select="count(//n[@fnamn='Tomas'])"/>

Or, do you have to do this within a script element?

- Jeff

-----Original Message-----
From: Tomas Olsson [mailto:Tomas.Olsson.2383@xxxxxxxxxxxxx]
Sent: Wednesday, May 05, 2004 17:44
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: [xsl] XPath count function in JavaScript


Hi!


I wonder if its possible to use the count function of XPath in JavaScript instead of in XSL. I'm using MSXML.

I want to count the number of elements with the attribute fnamn="Tomas" and return the number:

count(//*[@fnamn="Tomas"]))

Is it possible to use that expression in a function in JavaScript and return

the number or do I have to use the selectNodes() and check the number of
nodes in the nodeList?


/Tomas

Current Thread