bug41861.phpt 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. --TEST--
  2. Bug #41861 (getNamespaces() returns the namespaces of a node's siblings)
  3. --EXTENSIONS--
  4. simplexml
  5. --FILE--
  6. <?php
  7. $xml = simplexml_load_string('<root>
  8. <first_node_no_ns />
  9. <ns1:node1 xmlns:ns1="#ns1" />
  10. <ns2:node2 xmlns:ns2="#ns2" />
  11. <ns3:node3 xmlns:ns3="#ns3" />
  12. <last_node_no_ns />
  13. </root>');
  14. $name = $xml->getName();
  15. $namespaces = $xml->getNamespaces(True);
  16. echo "root(recursive): '$name' -- namespaces: ", implode(', ', $namespaces), "\n";
  17. $namespaces = $xml->getNamespaces(False);
  18. echo "root(non-recursive): '$name' -- namespaces: ", implode(', ', $namespaces), "\n";
  19. foreach (array(null, '#ns1', '#ns2', '#ns3') as $ns)
  20. {
  21. foreach ($xml->children($ns) as $child)
  22. {
  23. $name = $child->getName();
  24. $namespaces = $child->getNamespaces(false);
  25. echo "children($ns): '$name' -- namespaces: ", implode(', ', $namespaces), "\n";
  26. }
  27. }
  28. ?>
  29. --EXPECT--
  30. root(recursive): 'root' -- namespaces: #ns1, #ns2, #ns3
  31. root(non-recursive): 'root' -- namespaces:
  32. children(): 'first_node_no_ns' -- namespaces:
  33. children(): 'last_node_no_ns' -- namespaces:
  34. children(#ns1): 'node1' -- namespaces: #ns1
  35. children(#ns2): 'node2' -- namespaces: #ns2
  36. children(#ns3): 'node3' -- namespaces: #ns3