Jacek Kowalski
2012-07-13 4c05eca9dee137436b998b2d506db5fbd6d10550
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
<?php
class DOMHelper {
    static function ltrim($node) {
        while(($node->firstChild instanceof DOMElement) && $node->firstChild->tagName == 'br' && $node->firstChild->getAttribute('auto')=='1') {
            $node->removeChild($node->firstChild);
        }
        
        if($node->firstChild instanceof DOMElement) {
            self::ltrim($node->firstChid);
        }
    }
    
    static function rtrim($node) {
        while(($node->lastChild instanceof DOMElement) && $node->lastChild->tagName == 'br' && $node->lastChild->getAttribute('auto')=='1') {
            $node->removeChild($node->lastChild);
        }
        
        if($node->lastChild instanceof DOMElement) {
            self::rtrim($node->lastChild);
        }
    }
    
    static function trim($node) {
        self::ltrim($node);
        self::rtrim($node);
    }
    
    static function cloneNode($node, $saveto, $tag=NULL) {
        if($tag === NULL) {
            $tag = $node->tagName;
        }
        
        $saveto = $saveto->ownerDocument->createElement($tag);
        
        foreach($node->attributes as $attr) {
            if($attr->name == 'color' || $attr->name == 'style' || $attr->name == 'src') {
                $saveto->setAttributeNode($saveto->ownerDocument->importNode($attr, TRUE));
            }
        }
        
        return $saveto;
    }
    
    static function insertElement($tag, $node) {
        $tag = $node->ownerDocument->createElement($tag);
        $tag->setAttribute('auto', '1');
        $node->appendChild($tag);
    }
}
?>