sxe_002.phpt 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. --TEST--
  2. SPL: SimpleXMLIterator and recursion
  3. --SKIPIF--
  4. <?php
  5. if (!extension_loaded('simplexml')) print 'skip';
  6. if (!extension_loaded("libxml")) print "skip LibXML not present";
  7. ?>
  8. --FILE--
  9. <?php
  10. $xml =<<<EOF
  11. <?xml version='1.0'?>
  12. <!DOCTYPE sxe SYSTEM "notfound.dtd">
  13. <sxe id="elem1">
  14. Plain text.
  15. <elem1 attr1='first'>
  16. Bla bla 1.
  17. <!-- comment -->
  18. <elem2>
  19. Here we have some text data.
  20. <elem3>
  21. And here some more.
  22. <elem4>
  23. Wow once again.
  24. </elem4>
  25. </elem3>
  26. </elem2>
  27. </elem1>
  28. <elem11 attr2='second'>
  29. Bla bla 2.
  30. <elem111>
  31. Foo Bar
  32. </elem111>
  33. </elem11>
  34. </sxe>
  35. EOF;
  36. $sxe = simplexml_load_string((binary)$xml, 'SimpleXMLIterator');
  37. foreach(new RecursiveIteratorIterator($sxe, 1) as $name => $data) {
  38. var_dump($name);
  39. var_dump(get_class($data));
  40. var_dump(trim($data));
  41. }
  42. echo "===DUMP===\n";
  43. var_dump(get_class($sxe));
  44. var_dump(trim($sxe->elem1));
  45. ?>
  46. ===DONE===
  47. --EXPECT--
  48. string(5) "elem1"
  49. string(17) "SimpleXMLIterator"
  50. string(10) "Bla bla 1."
  51. string(5) "elem2"
  52. string(17) "SimpleXMLIterator"
  53. string(28) "Here we have some text data."
  54. string(5) "elem3"
  55. string(17) "SimpleXMLIterator"
  56. string(19) "And here some more."
  57. string(5) "elem4"
  58. string(17) "SimpleXMLIterator"
  59. string(15) "Wow once again."
  60. string(6) "elem11"
  61. string(17) "SimpleXMLIterator"
  62. string(10) "Bla bla 2."
  63. string(7) "elem111"
  64. string(17) "SimpleXMLIterator"
  65. string(7) "Foo Bar"
  66. ===DUMP===
  67. string(17) "SimpleXMLIterator"
  68. string(10) "Bla bla 1."
  69. ===DONE===