012.phpt 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. --TEST--
  2. XMLReader: accessing empty and non existing attributes
  3. --EXTENSIONS--
  4. xmlreader
  5. --FILE--
  6. <?php
  7. $xmlstring =<<<EOF
  8. <?xml version="1.0" encoding="UTF-8"?>
  9. <foo bar=""/>
  10. EOF;
  11. $reader = new XMLReader();
  12. $reader->XML($xmlstring);
  13. $reader->read();
  14. var_dump($reader->getAttribute('bar'));
  15. var_dump($reader->getAttribute('baz'));
  16. $reader->close();
  17. $xmlstring =<<<EOF
  18. <?xml version="1.0" encoding="UTF-8"?>
  19. <!DOCTYPE foo SYSTEM "012.dtd">
  20. <foo bar=""/>
  21. EOF;
  22. $xmlstring = str_replace('012.dtd', __DIR__.'/012.dtd', $xmlstring);
  23. if (DIRECTORY_SEPARATOR == '\\') {
  24. $xmlstring = str_replace('\\',"/", $xmlstring);
  25. }
  26. $reader = new XMLReader();
  27. $reader->XML($xmlstring);
  28. $reader->setParserProperty(XMLReader::DEFAULTATTRS, true);
  29. while($reader->read() && $reader->nodeType != XMLReader::ELEMENT);
  30. var_dump($reader->getAttribute('bar'));
  31. var_dump($reader->getAttribute('baz'));
  32. $reader->close();
  33. echo "\nUsing URI:\n";
  34. $reader = new XMLReader();
  35. $file = __DIR__ . '/012.xml';
  36. if (DIRECTORY_SEPARATOR == '\\') {
  37. $file = str_replace('\\',"/", $file);
  38. }
  39. $reader->open($file);
  40. //$reader->setParserProperty(XMLReader::DEFAULTATTRS, true);
  41. while($reader->read() && $reader->nodeType != XMLReader::ELEMENT);
  42. var_dump($reader->getAttribute('bar'));
  43. var_dump($reader->getAttribute('baz'));
  44. $reader->close();
  45. $reader = new XMLReader();
  46. $reader->open(__DIR__ . '/012.xml');
  47. $reader->setParserProperty(XMLReader::DEFAULTATTRS, true);
  48. while($reader->read() && $reader->nodeType != XMLReader::ELEMENT);
  49. var_dump($reader->getAttribute('bar'));
  50. var_dump($reader->getAttribute('baz'));
  51. $reader->close();
  52. ?>
  53. --EXPECT--
  54. string(0) ""
  55. NULL
  56. string(0) ""
  57. string(0) ""
  58. Using URI:
  59. string(0) ""
  60. NULL
  61. string(0) ""
  62. string(0) ""