1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
|
--TEST--
getPreviousSibling() and getNextSibling()
--EXTENSIONS--
tidy
--FILE--
<?php
$tidy = tidy_parse_string(<<<HTML
<!DOCTYPE html>
<html>
<body>
<div>first</div>
<!-- second -->
<div>third</div>
</body>
</html>
HTML);
$body = $tidy->body();
function format($str) {
if (is_null($str)) return $str;
return trim($str);
}
foreach ($body->child as $i => $child) {
echo "=== From the perspective of child $i ===\n";
echo "Previous: ";
var_dump(format($child->getPreviousSibling()?->value));
echo "Next: ";
var_dump(format($child->getNextSibling()?->value));
}
echo "=== html element has only the doctype as sibling ===\n";
echo "Previous: ";
var_dump(format($tidy->html()->getPreviousSibling()?->value));
echo "Next: ";
var_dump(format($tidy->html()->getNextSibling()?->value));
?>
--EXPECT--
=== From the perspective of child 0 ===
Previous: NULL
Next: string(15) "<!-- second -->"
=== From the perspective of child 1 ===
Previous: string(16) "<div>first</div>"
Next: string(16) "<div>third</div>"
=== From the perspective of child 2 ===
Previous: string(15) "<!-- second -->"
Next: NULL
=== html element has only the doctype as sibling ===
Previous: string(15) "<!DOCTYPE html>"
Next: NULL
|