Mercurial > defr > templates
comparison class.template.php @ 16:7a3ce31086b3
Possibilité de créer un fragment de document. Fix du cas DOMDocument.
Il est desormais possible d'inserer un remplacement par un fragment
de document, concept introduit par PHP et qui n'est pas un standard
DOM, correspondant a une suite de noeud non imbriqué dans une
racine.
D'autre part, le remplacement par un document DOM n'était pas
reelement opérationnel, puisque dans le cas général il est
necessaire en plus d'importer le noeud dans l'espace du nouveau
document avec importNode avant de pouvoir l'utiliser.
author | Franck Deroche <webmaster@defr.org> |
---|---|
date | Wed, 24 Oct 2007 20:21:20 +0200 |
parents | 51645aad97a8 |
children | d4ac7cef0cdd |
comparison
equal
deleted
inserted
replaced
15:51645aad97a8 | 16:7a3ce31086b3 |
---|---|
88 function parseReplacement($obj) { | 88 function parseReplacement($obj) { |
89 $retVal = NULL; | 89 $retVal = NULL; |
90 if(is_string($obj)) | 90 if(is_string($obj)) |
91 $retVal = $this->xmlDocument->createTextNode($obj); | 91 $retVal = $this->xmlDocument->createTextNode($obj); |
92 else if($obj instanceof DOMDocument) | 92 else if($obj instanceof DOMDocument) |
93 $retVal = $obj->documentElement->clone(true); | 93 $retVal = $this->xmlDocument->importNode($obj->documentElement); |
94 else if($obj instanceof DOMDocumentFragment) | |
95 $retVal = $obj; | |
94 else if($obj instanceof DOMNode) | 96 else if($obj instanceof DOMNode) |
95 $retVal = $obj->clone(true); | 97 $retVal = $obj->clone(true); |
96 else if($obj instanceof Template) { | 98 else if($obj instanceof Template) { |
97 $node = $obj->xmlDocument->documentElement; | 99 $node = $obj->xmlDocument->documentElement; |
98 $retVal = $this->xmlDocument->importNode($node, true); | 100 $retVal = $this->xmlDocument->importNode($node, true); |
139 $this->clean(); | 141 $this->clean(); |
140 $this->xmlDocument->formatOutput = true; | 142 $this->xmlDocument->formatOutput = true; |
141 $this->xmlDocument->normalizeDocument(); | 143 $this->xmlDocument->normalizeDocument(); |
142 return $this->xmlDocument->saveXML(); | 144 return $this->xmlDocument->saveXML(); |
143 } | 145 } |
146 | |
147 function getDocumentFragment() { | |
148 return $this->xmlDocument->createDocumentFragment(); | |
149 } | |
144 } | 150 } |