Flash: is een XML.childNode een echt XML object?

Pagina: 1
Acties:
  • 524 views sinds 30-01-2008
  • Reageer

  • jurriaan
  • Registratie: Januari 2000
  • Laatst online: 24-06 02:04
Ik probeer een toevoeging voor flash te maken waarbij ik net zoals in jacascript met document.getElementsByTagname uit een xml document alle nodes kan halen met een bepaalde tagname. Dit is de functie:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
XML.prototype.getElementsByTagname = function(tag) 
{ 
   var nodes = []; 
   var node; 

   for(var i = 0; i < this.childNodes.length; i++) 
   { 
      node = this.childNodes[i]; 

      if(node.nodeType != 1) 
         continue; 

      if(node.nodeName == tag) 
         nodes.push(node) 

      if(node.hasChildNodes()) 
      { 
         nodes.concat(node.getElementsByTagname(tag)) 
      } 
   } 
    
   return nodes; 
}



belangrijk onderdeel ervan is dat het recursief is en dat elke node met childnodes deze functie opnieuw aanroept.

Het probleem is dat de nodes die ik terugkrijg met childNodes[i] zijn in elk opzicht een xml-object lijken te zijn, met de bijbehorende methods en properties, behalve deze functie! node.getElementsByTagname is undefined en er vind dus ook geen recursie plaats. node.hasChildNodes is bijv. wel een bestaande functie.

rara hoe kan dat? node._proto_.getElementsByTagname(tag) gebruiken maakt geen verschil. Ook dan bestaat de functie niet.

Wees verantwoordelijk voor je eigen daden


Verwijderd

XMLNode is het Object wat je wilt

[ Voor 77% gewijzigd door Verwijderd op 24-08-2003 11:01 ]


  • jurriaan
  • Registratie: Januari 2000
  • Laatst online: 24-06 02:04
verdomd... :o hardstikke bedankt. ik heb nu nog een extra regel toegevoegd:

XMLNode.prototype.getElementsByTagName = XML.prototype.getElementsByTagName;

en het werkt als een tirelier (nadat ik de returnwaarde van nodes.concat() ook nog aan de variabele toekende). Bedankt!

Wees verantwoordelijk voor je eigen daden