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:
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.
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