Annotation of embedaddon/php/ext/dom/tests/bug43364.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: Bug #43364 (recursive xincludes don't remove internal xml nodes properly)
! 3: --SKIPIF--
! 4: <?php require_once('skipif.inc'); ?>
! 5: --FILE--
! 6: <?php
! 7: function loopElements($nodes)
! 8: {
! 9: $count = 0;
! 10: foreach($nodes as $node) {
! 11: if($node instanceof DOMElement) {
! 12: $count++;
! 13: if($node->childNodes->length > 0) {
! 14: $count += loopElements($node->childNodes);
! 15: }
! 16: }
! 17: }
! 18: return $count;
! 19: }
! 20:
! 21: $xml = <<<DOC
! 22: <?xml version="1.0" encoding="UTF-8"?>
! 23: <root xmlns:xi="http://www.w3.org/2001/XInclude">
! 24: <a>
! 25: <a_child1>ac1</a_child1>
! 26: <a_child2>ac2</a_child2>
! 27: </a>
! 28: <b><xi:include xpointer="xpointer(/root/a)" /></b>
! 29: <c><xi:include xpointer="xpointer(/root/b)" /></c>
! 30: </root>
! 31: DOC;
! 32:
! 33: $doc = new DomDocument();
! 34: $doc->loadXml($xml);
! 35: $doc->xinclude();
! 36:
! 37: $count = loopElements(array($doc->documentElement));
! 38:
! 39: var_dump($count);
! 40: ?>
! 41: --EXPECT--
! 42: int(13)
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>