sxe_003.phpt 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. --TEST--
  2. SPL: SimpleXMLIterator and getChildren()
  3. --EXTENSIONS--
  4. simplexml
  5. libxml
  6. --FILE--
  7. <?php
  8. $xml =<<<EOF
  9. <?xml version='1.0'?>
  10. <!DOCTYPE sxe SYSTEM "notfound.dtd">
  11. <sxe id="elem1">
  12. Plain text.
  13. <elem1 attr1='first'>
  14. Bla bla 1.
  15. <!-- comment -->
  16. <elem2>
  17. Here we have some text data.
  18. <elem3>
  19. And here some more.
  20. <elem4>
  21. Wow once again.
  22. </elem4>
  23. </elem3>
  24. </elem2>
  25. </elem1>
  26. <elem11 attr2='second'>
  27. Bla bla 2.
  28. <elem111>
  29. Foo Bar
  30. </elem111>
  31. </elem11>
  32. </sxe>
  33. EOF;
  34. $sxe = simplexml_load_string($xml, 'SimpleXMLIterator');
  35. foreach($sxe->getChildren() as $name => $data) {
  36. var_dump($name);
  37. var_dump(get_class($data));
  38. var_dump(trim($data));
  39. }
  40. echo "===RESET===\n";
  41. for ($sxe->rewind(); $sxe->valid(); $sxe->next()) {
  42. var_dump($sxe->hasChildren());
  43. var_dump(trim($sxe->key()));
  44. var_dump(trim($sxe->current()));
  45. foreach($sxe->getChildren() as $name => $data) {
  46. var_dump($name);
  47. var_dump(get_class($data));
  48. var_dump(trim($data));
  49. }
  50. }
  51. ?>
  52. --EXPECTF--
  53. Warning: foreach() argument must be of type array|object, null given in %ssxe_003.php on line %d
  54. ===RESET===
  55. bool(true)
  56. string(5) "elem1"
  57. string(10) "Bla bla 1."
  58. string(5) "elem2"
  59. string(17) "SimpleXMLIterator"
  60. string(28) "Here we have some text data."
  61. bool(true)
  62. string(6) "elem11"
  63. string(10) "Bla bla 2."
  64. string(7) "elem111"
  65. string(17) "SimpleXMLIterator"
  66. string(7) "Foo Bar"