domelement.phpt 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. --TEST--
  2. Elements: DOMElement functionality
  3. --EXTENSIONS--
  4. dom
  5. --FILE--
  6. <?php
  7. require_once("dom_test.inc");
  8. $dom = new DOMDocument;
  9. $dom->loadXML($xmlstr);
  10. if(!$dom) {
  11. echo "Error while parsing the document\n";
  12. exit;
  13. }
  14. $node = $dom->documentElement;
  15. echo "Tag Name: ".$node->tagName."\n";
  16. $node->setAttribute('num', '1');
  17. echo "Chapter: ".$node->getAttribute('num')."\n";
  18. echo 'Attribute num exists?: '.($node->hasAttribute('num')?'Yes':'No')."\n";
  19. $node->removeAttribute('num');
  20. echo "Chapter: ".$node->getAttribute('num')."\n";
  21. echo 'Attribute num exists?: '.($node->hasAttribute('num')?'Yes':'No')."\n";
  22. echo "Language: ".$node->getAttribute('language')."\n";
  23. $lang = $node->getAttributeNode('language');
  24. $lang->nodeValue = 'en-US';
  25. $node->setAttributeNode($lang);
  26. echo "Language: ".$node->getAttribute('language')."\n";
  27. $node->removeAttributeNode($lang);
  28. echo "Language: ".$node->getAttribute('language')."\n";
  29. echo "\n-- xml:lang --\n";
  30. $node->setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:lang', 'en');
  31. echo "Language: ".$node->getAttributeNS('http://www.w3.org/XML/1998/namespace', 'lang')."\n";
  32. echo 'Attribute xml:lang exists?: '.($node->hasAttributeNS('http://www.w3.org/XML/1998/namespace', 'lang')?'Yes':'No')."\n";
  33. $node->removeAttributeNS('http://www.w3.org/XML/1998/namespace', 'lang');
  34. echo "Language: ".$node->getAttributeNS('http://www.w3.org/XML/1998/namespace', 'lang')."\n";
  35. echo 'Attribute xml:lang exists?: '.($node->hasAttributeNS('http://www.w3.org/XML/1998/namespace', 'lang')?'Yes':'No')."\n";
  36. $lang = $dom->createAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:lang');
  37. $lang->nodeValue = 'en-GB';
  38. $node->setAttributeNodeNS($lang);
  39. unset($lang);
  40. echo "Language: ".$node->getAttributeNS('http://www.w3.org/XML/1998/namespace', 'lang')."\n";
  41. $lang = $node->getAttributeNodeNS('http://www.w3.org/XML/1998/namespace', 'lang');
  42. echo "Language: ".$lang->value."\n";
  43. echo "\n-- Elements --\n";
  44. $rows = $node->getElementsByTagName('row');
  45. echo "Row Count: ".$rows->length."\n";
  46. $element_ns = new DOMElement('newns:myelement', 'default content', 'urn::dummyns');
  47. $node->appendChild($element_ns);
  48. $element_ns = new DOMElement('newns2:myelement', 'second default content', 'urn::dummyns');
  49. $node->appendChild($element_ns);
  50. $myelements = $node->getElementsByTagNameNS('urn::dummyns', 'myelement');
  51. $mylen = $myelements->length;
  52. echo "myelements Count: ".$mylen."\n";
  53. echo "\n-- IDs --\n";
  54. $node->setAttribute('idatt', 'n1');
  55. $node->setIdAttribute('idatt', TRUE);
  56. for ($x = 0; $x < $mylen; $x++) {
  57. $current = $myelements->item($x);
  58. $current->setAttributeNS('urn::dummyns', 'newns:idatt', 'n'.($x+2))."\n";
  59. $current->setIdAttributeNS('urn::dummyns', 'idatt', TRUE);
  60. }
  61. echo 'Element Name: '.(($elem = $dom->getElementByID('n1'))?$elem->localName:'Not Found')."\n";
  62. $idatt = $node->getAttributeNode('idatt');
  63. $node->setIdAttributeNode($idatt, FALSE);
  64. echo 'Element Name: '.(($elem = $dom->getElementByID('n1'))?$elem->localName:'Not Found')."\n";
  65. echo 'Element Name: '.(($elem = $dom->getElementByID('n3'))?$elem->nodeName:'Not Found')."\n";
  66. for ($x = 0; $x < $mylen; $x++) {
  67. $node = $myelements->item($x);
  68. $node->setIdAttributeNS('urn::dummyns', 'idatt', FALSE);
  69. }
  70. echo 'Element Name: '.(($elem = $dom->getElementByID('n3'))?$elem->nodeName:'Not Found')."\n";
  71. ?>
  72. --EXPECT--
  73. Tag Name: chapter
  74. Chapter: 1
  75. Attribute num exists?: Yes
  76. Chapter:
  77. Attribute num exists?: No
  78. Language: en
  79. Language: en-US
  80. Language:
  81. -- xml:lang --
  82. Language: en
  83. Attribute xml:lang exists?: Yes
  84. Language:
  85. Attribute xml:lang exists?: No
  86. Language: en-GB
  87. Language: en-GB
  88. -- Elements --
  89. Row Count: 3
  90. myelements Count: 2
  91. -- IDs --
  92. Element Name: chapter
  93. Element Name: Not Found
  94. Element Name: newns2:myelement
  95. Element Name: Not Found