Annotation of embedaddon/php/ext/dom/tests/DOMNode_cloneNode_basic.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: DOM cloneNode : Basic Functionality
! 3: --SKIPIF--
! 4: <?php
! 5: require_once('skipif.inc');
! 6: ?>
! 7: --CREDITS--
! 8: Simon Hughes <odbc3@hotmail.com>
! 9: --FILE--
! 10: <?php
! 11:
! 12: $xml = <<< EOXML
! 13: <?xml version="1.0" encoding="ISO-8859-1"?>
! 14: <courses>
! 15: <course title="one">
! 16: <notes>
! 17: <note>c1n1</note>
! 18: <note>c1n2</note>
! 19: </notes>
! 20: </course>
! 21: <course title="two">
! 22: <notes>
! 23: <note>c2n1</note>
! 24: <note>c2n2</note>
! 25: </notes>
! 26: </course>
! 27: </courses>
! 28: EOXML;
! 29:
! 30: function dumpcourse($current) {
! 31: $title = ($current->nodeType != XML_TEXT_NODE && $current->hasAttribute('title')) ? $current->getAttribute('title'):"no title";
! 32: echo "Course: $title:";var_dump($current);
! 33: echo "~";var_dump($current->textContent);
! 34: }
! 35:
! 36: $dom = new DOMDocument();
! 37: $dom->loadXML($xml);
! 38: $root = $dom->documentElement;
! 39:
! 40: // strip all text nodes from this tree
! 41: $children = $root->childNodes;
! 42: $len = $children->length;
! 43: for ($index = $children->length - 1; $index >=0; $index--) {
! 44: $current = $children->item($index);
! 45: if ($current->nodeType == XML_TEXT_NODE) {
! 46: $noderemoved = $root->removeChild($current);
! 47: }
! 48: }
! 49:
! 50: echo "Start cloneNode test\n";
! 51: $first_course = $children->item(0);
! 52: $cloned_first_course_default = $first_course->cloneNode();
! 53: $first_course->setAttribute('title', 'new title1');
! 54:
! 55: $cloned_first_course_true = $first_course->cloneNode(true);
! 56: $first_course->setAttribute('title', 'new title2');
! 57:
! 58: $cloned_first_course_false = $first_course->cloneNode(false);
! 59: $first_course->setAttribute('title', 'new title3');
! 60:
! 61: $cloned_first_course_default->setAttribute('title', 'new title default');
! 62: $cloned_first_course_true->setAttribute('title', 'new title true');
! 63: $cloned_first_course_false->setAttribute('title', 'new title false');
! 64:
! 65: $root->appendChild($cloned_first_course_default);
! 66: $root->appendChild($cloned_first_course_true);
! 67: $root->appendChild($cloned_first_course_false);
! 68:
! 69: $children = $root->childNodes;
! 70: for ($index = 0; $index < $children->length; $index++) {
! 71: echo "node $index\n";
! 72: dumpcourse($children->item($index));
! 73: }
! 74:
! 75: --EXPECTF--
! 76: Start cloneNode test
! 77: node 0
! 78: Course: new title3:object(DOMElement)#6 (0) {
! 79: }
! 80: ~string(24) "
! 81:
! 82: c1n1
! 83: c1n2
! 84:
! 85: "
! 86: node 1
! 87: Course: two:object(DOMElement)#3 (0) {
! 88: }
! 89: ~string(24) "
! 90:
! 91: c2n1
! 92: c2n2
! 93:
! 94: "
! 95: node 2
! 96: Course: new title default:object(DOMElement)#4 (0) {
! 97: }
! 98: ~string(0) ""
! 99: node 3
! 100: Course: new title true:object(DOMElement)#7 (0) {
! 101: }
! 102: ~string(24) "
! 103:
! 104: c1n1
! 105: c1n2
! 106:
! 107: "
! 108: node 4
! 109: Course: new title false:object(DOMElement)#8 (0) {
! 110: }
! 111: ~string(0) ""
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>