summaryrefslogtreecommitdiff
path: root/tests/testdom
diff options
context:
space:
mode:
authorUwe Steinmann <steinm@php.net>2000-01-26 06:22:44 +0000
committerUwe Steinmann <steinm@php.net>2000-01-26 06:22:44 +0000
commit49be46409ce58d4f313bb168fa9a03bb9fa87866 (patch)
treea9c7690173b6c18e91074f9c7613483486a40e65 /tests/testdom
parent4585f7bf1f8e5fb52aebd0990d67fa017ea8a918 (diff)
downloadphp-git-49be46409ce58d4f313bb168fa9a03bb9fa87866.tar.gz
- test script for domxml
Diffstat (limited to 'tests/testdom')
-rw-r--r--tests/testdom63
1 files changed, 63 insertions, 0 deletions
diff --git a/tests/testdom b/tests/testdom
new file mode 100644
index 0000000000..9a270cea49
--- /dev/null
+++ b/tests/testdom
@@ -0,0 +1,63 @@
+<?php
+
+function output_node($node, $level=0) {
+ switch($node->type) {
+ case XML_ELEMENT_NODE:
+ for($i=0; $i<$level; $i++)
+ echo " ";
+ echo "<".$node->name;
+ $attributes = $node->attributes();
+ if(is_array($attributes))
+ for(reset($attributes); $attrname = key($attributes); next($attributes))
+ echo " ".$attrname."=".$node->getattr($attrname);
+ echo ">\n";
+ $children = $node->children();
+ for($i=0; $i < count($children); $i++)
+ output_node($children[$i], $level+1);
+ for($i=0; $i<$level; $i++)
+ echo " ";
+ echo "</".$node->name.">\n";
+ break;
+ case XML_TEXT_NODE:
+ for($i=0; $i<$level; $i++)
+ echo " ";
+ echo $node->content;
+ echo "\n";
+ break;
+ }
+}
+
+function list_attr($node) {
+ $attr = domxml_attributes($node);
+ for(reset($attr); $key = key($attr); next($attr)) {
+ echo $key."=".$attr[$key]."\n";
+ }
+}
+
+$xmlstr = "<?xml version='1.0'?>
+<!DOCTYPE chapter SYSTEM '/share/sgml/Norman_Walsh/db3xml10/db3xml10.dtd'>
+<chapter language='en'><title language='en'>Title</title>
+<para language='en'>
+<informaltable language='en'>
+<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> ";
+
+$dom = dom($xmlstr);
+echo "XML Version: ".$dom->version."\n";
+$dtd = $dom->intdtd();
+$rootnode = $dom->root();
+/* The following line causes a segm fault if more than 5 methods are in
+ class node, see ext/domxml/domxml.c */
+$attr = $rootnode->getattr("language");
+
+output_node($rootnode);
+
+?>