Ik doe een poging een XML Document Object Model in PHP te maken. Dit lukt over 't algemeen aardig, maar ik zit nu al een week te ploeteren op de insertBefore-method en ik kom er niet uit.
Ik heb hulp nodig! De versie van m'n class, waar ik nu mee bezig ben, staat online op mijn site: http://www.webtweakers.com/phpdomxml/beta/functest.php
Dat is een link naar de functionality test case. In die pagina staat ook een link naar een ZIP-file, waar het hele pakketje te downloaden is.
Kan iemand me een duwtje in de goede richting geven?
Hier vast de insertBefore-method, zoals ik 'm nu heb (die dus niet werkt):
Ik heb hulp nodig! De versie van m'n class, waar ik nu mee bezig ben, staat online op mijn site: http://www.webtweakers.com/phpdomxml/beta/functest.php
Dat is een link naar de functionality test case. In die pagina staat ook een link naar een ZIP-file, waar het hele pakketje te downloaden is.
Kan iemand me een duwtje in de goede richting geven?
Hier vast de insertBefore-method, zoals ik 'm nu heb (die dus niet werkt):
PHP:
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
| function insertBefore(&$child, $refChild = null) { // If no refChild was given, append child if (is_null($refChild)) $this->appendChild($child); // Set child's parentNode $child->parentNode =& $this; // Get child that is now before refChild $pChild =& $refChild->previousSibling; // Insert child between pChild and refChild $child->previousSibling =& $pChild; $child->nextSibling =& $refChild; // Set next child's previousSibling $refChild->previousSibling =& $child; if (is_null($pChild)) { // Since there is no previous child, our child is firstChild $this->firstChild =& $child; } else { // Set previous child's nextSibling $pChild->nextSibling =& $child; } // Now rebuild childNodes collection $i = 0; $item = $this->firstChild; while ($item) { $this->childNodes[$i++] = $item; $item = isset($item->nextSibling)?$item->nextSibling:null; } // Finaly set firstChild and lastChild $this->firstChild = $this->childNodes[0]; $this->lastChild = $this->childNodes[count($this->childNodes)-1]; // Return the inserted child - as per spec return $child; } // End insertBefore |
[ Voor 55% gewijzigd door Explore op 18-10-2003 17:34 ]
[ specs ] [ Tweaker gallery ]