]> granicus.if.org Git - php/commitdiff
add tests/ files as examples that you can run and play around with
authorSterling Hughes <sterling@php.net>
Thu, 5 Jun 2003 17:51:35 +0000 (17:51 +0000)
committerSterling Hughes <sterling@php.net>
Thu, 5 Jun 2003 17:51:35 +0000 (17:51 +0000)
ext/dom/examples/dom1.inc [new file with mode: 0644]
ext/dom/examples/dom1.php [new file with mode: 0644]

diff --git a/ext/dom/examples/dom1.inc b/ext/dom/examples/dom1.inc
new file mode 100644 (file)
index 0000000..96acddc
--- /dev/null
@@ -0,0 +1,43 @@
+<?PHP
+$xmlstr = "<?xml version='1.0' standalone='yes'?>
+<!DOCTYPE chapter SYSTEM '/share/sgml/Norman_Walsh/db3xml10/db3xml10.dtd'
+[ <!ENTITY sp \"spanish\">
+]>
+<!-- lsfj  -->
+<chapter language='en'><title language='en'>Title</title>
+<para language='ge'>
+&sp;
+<!-- comment -->
+<informaltable language='&sp;kkk'>
+<tgroup cols='3'>
+<tbody>
+<row><entry>a1</entry><entry morerows='1'>b1</entry><entry>c1</entry></row>
+<row><entry>a2</entry><entry>c2</entry></row>
+<row><entry>a3</entry><entry>b3</entry><entry>c3</entry></row>
+</tbody>
+</tgroup>
+</informaltable>
+</para>
+</chapter> ";
+
+function print_node($node)
+{
+  print "Node Name: " . $node->nodeName;
+  print "\nNode Type: " . $node->nodeType;
+  $child_count = count($node->childNodes);
+  print "\nNum Children: " . $child_count;
+  if($child_count <= 1){
+    print "\nNode Content: " . $node->nodeValue;
+  }
+  print "\n\n";
+}
+
+function print_node_list($nodelist)
+{
+  foreach($nodelist as $node)
+  {
+    print_node($node);
+  }
+}
+
+?>
diff --git a/ext/dom/examples/dom1.php b/ext/dom/examples/dom1.php
new file mode 100644 (file)
index 0000000..8654b19
--- /dev/null
@@ -0,0 +1,94 @@
+<?php
+require_once("dom1.inc");
+
+echo "Test 1: accessing single nodes from php\n";
+$dom = new domDocument;
+$dom->loadxml($xmlstr);
+if(!$dom) {
+  echo "Error while parsing the document\n";
+  exit;
+}
+
+// children() of of document would result in a memleak
+//$children = $dom->children();
+//print_node_list($children);
+
+echo "--------- root\n";
+$rootnode = $dom->documentElement;
+print_node($rootnode);
+
+echo "--------- children of root\n";
+$children = $rootnode->childNodes;
+print_node_list($children);
+
+// The last node should be identical with the last entry in the children array
+echo "--------- last\n";
+$last = $rootnode->lastChild;
+print_node($last);
+
+// The parent of this last node is the root again
+echo "--------- parent\n";
+$parent = $last->parentNode;
+print_node($parent);
+
+// The children of this parent are the same children as one above
+echo "--------- children of parent\n";
+$children = $parent->childNodes;
+print_node_list($children);
+
+echo "--------- creating a new attribute\n";
+//This is worthless
+//$attr = $dom->createAttribute("src", "picture.gif");
+//print_r($attr);
+
+//$rootnode->set_attributeNode($attr); 
+$attr = $rootnode->setAttribute("src", "picture.gif");
+$attr = $rootnode->getAttribute("src");
+print_r($attr);
+print "\n";
+
+echo "--------- Get Attribute Node\n";
+$attr = $rootnode->getAttributeNode("src");
+print_node($attr);
+
+echo "--------- Remove Attribute Node\n";
+$attr = $rootnode->removeAttribute("src");
+print "Removed " . $attr . " attributes.\n";
+
+echo "--------- attributes of rootnode\n";
+$attrs = $rootnode->attributes;
+print_node_list($attrs);
+
+echo "--------- children of an attribute\n";
+$children = current($attrs)->childNodes;
+print_node_list($children);
+
+echo "--------- Add child to root\n";
+$myelement = new domElement("Silly", "Symphony");
+$newchild = $rootnode->appendChild($myelement);
+print_node($newchild);
+print $dom->saveXML();
+print "\n";
+
+echo "--------- Find element by tagname\n";
+echo "    Using dom\n";
+$children = $dom->getElementsByTagname("Silly");
+print_node_list($children);
+
+echo "    Using elem\n";
+$children = $rootnode->getElementsByTagName("Silly");
+print_node_list($children);
+
+echo "--------- Unlink Node\n";
+print_node($children[0]);
+$rootnode->removeChild($children[0]);
+print_node_list($rootnode->childNodes);
+print $dom->savexml();
+
+echo "--------- Find element by id\n";
+print ("Not implemented\n");
+
+echo "--------- Check various node_name return values\n";
+print ("Not needed\n");
+
+?>