1
0
mirror of https://github.com/php/php-src.git synced 2026-03-24 16:22:37 +01:00
Files
archived-php-src/ext/simplexml/tests/bug42259.phpt
Max Semenik 7f2f0c007c Migrate skip checks to --EXTENSIONS--, p4
For rationale, see #6787

Extensions migrated in part 4:
* simplexml
* skeleton
* soap
* spl
* sqlite3
* sysvmsg
* sysvsem
* tidy - also removed a check for an ancient dependency version
2021-04-08 10:36:44 +02:00

45 lines
972 B
PHP

--TEST--
Bug #42259 (SimpleXMLIterator loses ancestry)
--EXTENSIONS--
simplexml
--FILE--
<?php
$xml =<<<EOF
<xml>
<fieldset1>
<field1/>
<field2/>
</fieldset1>
<fieldset2>
<options>
<option1/>
<option2/>
<option3/>
</options>
<field1/>
<field2/>
</fieldset2>
</xml>
EOF;
$sxe = new SimpleXMLIterator($xml);
$rit = new RecursiveIteratorIterator($sxe, RecursiveIteratorIterator::LEAVES_ONLY);
foreach ($rit as $child) {
$path = '';
$ancestry = $child->xpath('ancestor-or-self::*');
foreach ($ancestry as $ancestor) {
$path .= $ancestor->getName() . '/';
}
$path = substr($path, 0, strlen($path) - 1);
echo count($ancestry) . ' steps: ' . $path . PHP_EOL;
}
?>
--EXPECT--
3 steps: xml/fieldset1/field1
3 steps: xml/fieldset1/field2
4 steps: xml/fieldset2/options/option1
4 steps: xml/fieldset2/options/option2
4 steps: xml/fieldset2/options/option3
3 steps: xml/fieldset2/field1
3 steps: xml/fieldset2/field2