[XSL] count werkt niet

Pagina: 1
Acties:

  • foske
  • Registratie: Juli 2001
  • Laatst online: 18-05 22:42
Gelijk maar to the point:
stukje van de data.xml
XML:
1
2
3
4
5
6
7
8
9
10
<techniek>
   <browsers>
        <browser>
          <naam>Microsoft Internet Explorer 6.x</naam>
          <totaal>16293</totaal>
          <procent>84,9</procent>
        </browser>
        ...
   </browsers>
</techniek>


Nu wil ik weten hoeveel items er zijn van browser. In mijn xsl bestand heb ik de volgende regel:
code:
1
<xsl:value-of select="count(/techniek/browsers)"/>


dit hele gebeuren, parse ik via ASP, nl
ASP.NET Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<%
option explicit
dim strXMLUrl, strXSLFilename

'de url voor het opvragen van de statistieken en het stylesheet bestand
strXMLUrl = "http://www.website.nl/data.xml"
strXSLFilename = "styleTechniek.xsl"

parseXMLtoHTML strXMLUrl, strXSLFilename

sub parseXMLtoHTML(strXMLUrl, strXSLFilename)
  dim objXMLDoc, objXSLDoc

  set objXMLDoc = Server.CreateObject("Microsoft.XMLDOM")
  objXMLDoc.async = false
  Call objXMLDoc.setProperty("ServerHTTPRequest", true)
  objXMLDoc.load(strXMLUrl)

  set objXSLDoc = Server.CreateObject("Microsoft.XMLDOM")
  objXSLDoc.async = false
  objXSLDoc.load(Server.MapPath(strXSLFilename))

  'schrijf de gegevens weg in de nieuwe stylesheet vorm
  Response.Write(objXMLDoc.transformNode(objXSLDoc))
end sub
%>


zolang ik het count script niet in mijn XSL heb staan, gaat alles goed, maar zodra ik dit regeltje erbij doe, krijg ik de error:
code:
1
2
3
4
5
msxml3.dll error '80004005'

Onbekende methode. -->count(/<--techniek/browsers)

/convert/loadxml3.asp, line 25


Heb zon beetje alles al gezocht over count, maar ik krijg het gewoon niet aan de praat, lijkt er wel op alsof het xmldom object van MS count helemaal niet ondersteunt, kan dat?

Bedankt

edit:
typfout, andere error

[ Voor 12% gewijzigd door foske op 04-12-2004 14:11 ]


Verwijderd

haal de '/' eens weg voor techniek, dus:

code:
1
<xsl:value-of select="count(techniek/browsers)"/>

  • Michali
  • Registratie: Juli 2002
  • Laatst online: 22-03 18:12
Het schijnt te zijn dat MSXML3 Xpath niet standaard gebruikt als taal. Ik ben er verder niet bekend mee dus moet je dat maar zelf even uitzoeken:

http://www.dnjonline.com/...s25_essentials_xpath6.asp
http://msdn.microsoft.com...2nd_selectionlanguage.asp
Verwijderd schreef op zaterdag 04 december 2004 @ 14:38:
haal de '/' eens weg voor techniek, dus:

code:
1
<xsl:value-of select="count(techniek/browsers)"/>
Dat is niet de oplossing. Met een / aan het begin selecteer je de root van het document.

Verder zou ik er count(/techniek/browsers/browser) van maken als je het aantal browser wilt tellen. Ik ga er namelijk van uit dat je maar 1 browsers element hebt en dat je die niet wil tellen.

[ Voor 44% gewijzigd door Michali op 04-12-2004 14:40 ]

Noushka's Magnificent Dream | Unity


Verwijderd

Michali schreef op zaterdag 04 december 2004 @ 14:38:
Dat is niet de oplossing. Met een / aan het begin selecteer je de root van het document.
Ik heb hier nochtans een .xsl met een werkende (MSXML) count erin, zonder die '/'. Daarnaast geeft de foutmelding ook daar de fout weer, er staat immers
'count(/<--'

Ik zeg niet dat het de oplossing moet zijn, maar het lijkt me de moeite van het proberen waard.

[ Voor 17% gewijzigd door Verwijderd op 04-12-2004 14:48 ]


  • foske
  • Registratie: Juli 2001
  • Laatst online: 18-05 22:42
ah, nou dat die count nu dit path aan geeft, komt omdat ik al heleboel dingen heb geprobeerd, dat komt wel goed ;) Overigs zou hij volgens mij 0 of 1 moeten aangeven, dus ik ging er vanuit dat er iets anders fout zou zijn, ik zal eens zoeken naar dat MSXML3 xpath gebeuren. Bedankt!

@generaal
die / is niet de oplossing helaas.

[ Voor 8% gewijzigd door foske op 04-12-2004 14:53 ]


  • paulh
  • Registratie: Juli 1999
  • Laatst online: 11-05 14:30
Is het niet

code:
1
<xsl:value-of select="count(/techniek/browsers/browser)"/>

?

Maar als ik jouw foutmelding zie dan zou het best wel eens kunnen dat die methode niet ondersteund wordt.

Probeer anders eens of dit uberhaubt wat oplevert:
code:
1
<xsl:value-of select = "count(*)" />


Dan weet je dat ook meteen.

[ Voor 63% gewijzigd door paulh op 04-12-2004 23:08 ]

[ZwareMetalen.com] - [Kom in aktie tegen de CO2 maffia]

Pagina: 1