mirror of
https://github.com/php/php-src.git
synced 2024-12-03 23:05:57 +08:00
43 lines
918 B
PHP
43 lines
918 B
PHP
--TEST--
|
|
Bug #43364 (recursive xincludes don't remove internal xml nodes properly)
|
|
--SKIPIF--
|
|
<?php require_once('skipif.inc'); ?>
|
|
--FILE--
|
|
<?php
|
|
function loopElements($nodes)
|
|
{
|
|
$count = 0;
|
|
foreach($nodes as $node) {
|
|
if($node instanceof DOMElement) {
|
|
$count++;
|
|
if($node->childNodes->length > 0) {
|
|
$count += loopElements($node->childNodes);
|
|
}
|
|
}
|
|
}
|
|
return $count;
|
|
}
|
|
|
|
$xml = <<<DOC
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
<root xmlns:xi="http://www.w3.org/2001/XInclude">
|
|
<a>
|
|
<a_child1>ac1</a_child1>
|
|
<a_child2>ac2</a_child2>
|
|
</a>
|
|
<b><xi:include xpointer="xpointer(/root/a)" /></b>
|
|
<c><xi:include xpointer="xpointer(/root/b)" /></c>
|
|
</root>
|
|
DOC;
|
|
|
|
$doc = new DomDocument();
|
|
$doc->loadXml($xml);
|
|
$doc->xinclude();
|
|
|
|
$count = loopElements(array($doc->documentElement));
|
|
|
|
var_dump($count);
|
|
?>
|
|
--EXPECT--
|
|
int(13)
|