017.phpt 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. --TEST--
  2. SimpleXML: iteration through subnodes
  3. --SKIPIF--
  4. <?php if (!extension_loaded("simplexml")) print "skip"; ?>
  5. --FILE--
  6. <?php
  7. $xml =<<<EOF
  8. <people>
  9. <person name="Joe">
  10. <child name="Ann" />
  11. <child name="Marray" />
  12. </person>
  13. <person name="Boe">
  14. <child name="Joe" />
  15. <child name="Ann" />
  16. </person>
  17. </people>
  18. EOF;
  19. $xml1 =<<<EOF
  20. <people>
  21. <person name="Joe">
  22. <child name="Ann" />
  23. </person>
  24. </people>
  25. EOF;
  26. function print_xml($xml) {
  27. foreach($xml->children() as $person) {
  28. echo "person: ".$person['name']."\n";
  29. foreach($person->children() as $child) {
  30. echo " child: ".$child['name']."\n";
  31. }
  32. }
  33. }
  34. function print_xml2($xml) {
  35. $persons = 2;
  36. for ($i=0;$i<$persons;$i++) {
  37. echo "person: ".$xml->person[$i]['name']."\n";
  38. $children = 2;
  39. for ($j=0;$j<$children;$j++) {
  40. echo " child: ".$xml->person[$i]->child[$j]['name']."\n";
  41. }
  42. }
  43. }
  44. echo "---11---\n";
  45. print_xml(simplexml_load_string($xml));
  46. echo "---12---\n";
  47. print_xml(simplexml_load_string($xml1));
  48. echo "---21---\n";
  49. print_xml2(simplexml_load_string($xml));
  50. echo "---22---\n";
  51. print_xml2(simplexml_load_string($xml1));
  52. ?>
  53. ===DONE===
  54. --EXPECTF--
  55. ---11---
  56. person: Joe
  57. child: Ann
  58. child: Marray
  59. person: Boe
  60. child: Joe
  61. child: Ann
  62. ---12---
  63. person: Joe
  64. child: Ann
  65. ---21---
  66. person: Joe
  67. child: Ann
  68. child: Marray
  69. person: Boe
  70. child: Joe
  71. child: Ann
  72. ---22---
  73. person: Joe
  74. child: Ann
  75. child:
  76. person:
  77. Notice: Trying to get property of non-object in %s017.php on line %d
  78. child:
  79. Notice: Trying to get property of non-object in %s017.php on line %d
  80. child:
  81. ===DONE===