diff options
author | Uwe Steinmann <steinm@php.net> | 2000-01-26 06:22:44 +0000 |
---|---|---|
committer | Uwe Steinmann <steinm@php.net> | 2000-01-26 06:22:44 +0000 |
commit | 49be46409ce58d4f313bb168fa9a03bb9fa87866 (patch) | |
tree | a9c7690173b6c18e91074f9c7613483486a40e65 /tests/testdom | |
parent | 4585f7bf1f8e5fb52aebd0990d67fa017ea8a918 (diff) | |
download | php-git-49be46409ce58d4f313bb168fa9a03bb9fa87866.tar.gz |
- test script for domxml
Diffstat (limited to 'tests/testdom')
-rw-r--r-- | tests/testdom | 63 |
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); + +?> |