-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathFastXMLList.hx
65 lines (56 loc) · 1.13 KB
/
FastXMLList.hx
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
class FastXMLList {
var l : Array<FastXML>;
public function new(?a:Array<FastXML>) {
l = (a != null ? a : new Array());
}
/**
* Makes a copy of the FastXMLList
**/
public function copy() : FastXMLList {
return new FastXMLList(l.slice(0));
}
public function descendants(name:String = "*") :FastXMLList {
var a = new Array<FastXML>();
for(fx in l) {
for(e in fx.x.elements()) {
if(e.nodeName == name || name == "*") {
a.push(new FastXML(e));
} else {
var fx2 = new FastXML(e);
a = a.concat(fx2.descendants(name).getArray());
}
}
}
return new FastXMLList(a);
}
public function get(i:Int) : FastXML {
return l[i];
}
public function getArray() : Array<FastXML> {
return l;
}
public function iterator() : Iterator<FastXML> {
return l.iterator();
}
public function length() : Int {
return l.length;
}
/**
*
public function set(i:Int, v:FastXML) : FastXML {
l[i] = v;
return v;
}
*/
public function toString() : String {
var s = "";
var first = true;
for(i in l) {
if(!first)
s += "\r\n";
first = false;
s = s + i.toString();
}
return s;
}
}