}
} else { # repeat
$doc = $node->ownerDocument;
- $frag = $doc->createElement("temporary-fragment"); # ugh
+ $frag = $doc->createDocumentFragment();
while ($node->childNodes->length > 0) {
$child = $node->childNodes->item(0);
+ $node->removeChild($child);
$frag->appendChild($child);
}
}
$newnode = $frag->cloneNode(true);
- $node->appendChild($newnode);
XML_Template_process($newnode, $instance, $clean);
+ $node->appendChild($newnode);
if ($clean) {
XML_Template_clean($newnode);
}
}
-
- # remove all the <fragment> tags
- for ($i = 0; $i < $node->childNodes->length; ++$i) {
- $child = $node->childNodes->item($i);
- if ($child->localName != 'temporary-fragment') {
- continue;
- }
- while ($child->childNodes->length > 0) {
- $child2 = $child->childNodes->item(0);
- $node->appendChild($child2);
- }
- --$i;
- $node->removeChild($child);
- }
}
if ($clean) {