027.phpt 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. --TEST--
  2. SimpleXML: Adding an elements
  3. --SKIPIF--
  4. <?php if (!extension_loaded("simplexml")) print "skip"; ?>
  5. --FILE--
  6. <?php
  7. $xml =<<<EOF
  8. <people></people>
  9. EOF;
  10. function traverse_xml($xml, $pad = '')
  11. {
  12. $name = $xml->getName();
  13. echo "$pad<$name";
  14. foreach($xml->attributes() as $attr => $value)
  15. {
  16. echo " $attr=\"$value\"";
  17. }
  18. echo ">" . trim($xml) . "\n";
  19. foreach($xml->children() as $node)
  20. {
  21. traverse_xml($node, $pad.' ');
  22. }
  23. echo $pad."</$name>\n";
  24. }
  25. $people = simplexml_load_string($xml);
  26. traverse_xml($people);
  27. $people->person = 'Joe';
  28. $people->person['gender'] = 'male';
  29. traverse_xml($people);
  30. $people->person = 'Jane';
  31. traverse_xml($people);
  32. $people->person['gender'] = 'female';
  33. $people->person[1] = 'Joe';
  34. $people->person[1]['gender'] = 'male';
  35. traverse_xml($people);
  36. $people->person[3] = 'Minni-me';
  37. $people->person[2]['gender'] = 'male';
  38. traverse_xml($people);
  39. $people->person[3]['gender'] = 'error';
  40. traverse_xml($people);
  41. ?>
  42. ===DONE===
  43. --EXPECTF--
  44. <people>
  45. </people>
  46. <people>
  47. <person gender="male">Joe
  48. </person>
  49. </people>
  50. <people>
  51. <person gender="male">Jane
  52. </person>
  53. </people>
  54. <people>
  55. <person gender="female">Jane
  56. </person>
  57. <person gender="male">Joe
  58. </person>
  59. </people>
  60. Warning: main(): Cannot add element person number 3 when only 2 such elements exist in %s027.php on line %d
  61. <people>
  62. <person gender="female">Jane
  63. </person>
  64. <person gender="male">Joe
  65. </person>
  66. <person gender="male">Minni-me
  67. </person>
  68. </people>
  69. <people>
  70. <person gender="female">Jane
  71. </person>
  72. <person gender="male">Joe
  73. </person>
  74. <person gender="male">Minni-me
  75. </person>
  76. <person gender="error">
  77. </person>
  78. </people>
  79. ===DONE===