diff options
| author | Dmitry Stogov <dmitry@php.net> | 2003-12-18 13:28:00 +0000 |
|---|---|---|
| committer | Dmitry Stogov <dmitry@php.net> | 2003-12-18 13:28:00 +0000 |
| commit | eb973da1d3397dfc30b19a10620b0e98aa385a62 (patch) | |
| tree | f87174313792af96226680dad54291c1ae8ec052 /ext/simplexml/tests | |
| parent | 33ed73cb515a642b70611b5322ae65c6b79f6f07 (diff) | |
| download | php-git-eb973da1d3397dfc30b19a10620b0e98aa385a62.tar.gz | |
two new methods were added
$node->count($subnode_name) - returns count of subnodes with specified name
$node->attributes() - returns array of attributes
Diffstat (limited to 'ext/simplexml/tests')
| -rw-r--r-- | ext/simplexml/tests/017.phpt | 76 | ||||
| -rw-r--r-- | ext/simplexml/tests/018.phpt | 65 |
2 files changed, 141 insertions, 0 deletions
diff --git a/ext/simplexml/tests/017.phpt b/ext/simplexml/tests/017.phpt new file mode 100644 index 0000000000..de2823c40c --- /dev/null +++ b/ext/simplexml/tests/017.phpt @@ -0,0 +1,76 @@ +--TEST-- +SimpleXML: iteration through subnodes +--SKIPIF-- +<?php if (!extension_loaded("simplexml")) print "skip"; ?> +--FILE-- +<?php +$xml =<<<EOF +<people> + <person name="Joe"> + <child name="Ann" /> + <child name="Marray" /> + </person> + <person name="Boe"> + <child name="Joe" /> + <child name="Ann" /> + </person> +</people> +EOF; +$xml1 =<<<EOF +<people> + <person name="Joe"> + <child name="Ann" /> + </person> +</people> +EOF; + +function print_xml($xml) { + foreach($xml as $person) { + echo "person: ".$person['name']."\n"; + foreach($person as $child) { + echo " child: ".$child['name']."\n"; + } + } + echo "----------\n"; +} + +function print_xml2($xml) { + $persons = $xml->count("person"); + for ($i=0;$i<$persons;$i++) { + echo "person: ".$xml->person[$i]['name']."\n"; + $children = $xml->person[$i]->count("child"); + for ($j=0;$j<$children;$j++) { + echo " child: ".$xml->person[$i]->child[$j]['name']."\n"; + } + } + echo "----------\n"; +} + +print_xml(simplexml_load_string($xml)); +print_xml(simplexml_load_string($xml1)); +print_xml2(simplexml_load_string($xml)); +print_xml2(simplexml_load_string($xml1)); +echo "---Done---\n"; +?> +--EXPECT-- +person: Joe + child: Ann + child: Marray +person: Boe + child: Joe + child: Ann +---------- +person: Joe + child: Ann +---------- +person: Joe + child: Ann + child: Marray +person: Boe + child: Joe + child: Ann +---------- +person: Joe + child: Ann +---------- +---Done--- diff --git a/ext/simplexml/tests/018.phpt b/ext/simplexml/tests/018.phpt new file mode 100644 index 0000000000..cc7153b7ce --- /dev/null +++ b/ext/simplexml/tests/018.phpt @@ -0,0 +1,65 @@ +--TEST-- +SimpleXML: iteration through subnodes and attributes +--SKIPIF-- +<?php if (!extension_loaded("simplexml")) print "skip"; ?> +--FILE-- +<?php +$xml =<<<EOF +<people> + <person name="Joe"> + Text1 + <child name="Ann" /> + Text2 + <child name="Marray" /> + Text3 + </person> + <person name="Boe"> + <child name="Joe" /> + <child name="Ann" /> + </person> +</people> +EOF; +$xml1 =<<<EOF +<people> + <person name="Joe"> + <child /> + </person> +</people> +EOF; + +function traverse_xml($pad,$xml) { + foreach($xml as $name => $node) { + echo $pad."<$name"; + foreach($node->attributes() as $attr => $value) { + echo " $attr=\"$value\""; + } + echo ">\n"; + traverse_xml($pad." ",$node); + echo $pad."</$name>\n"; + } +} + +traverse_xml("",simplexml_load_string($xml)); +echo "----------\n"; +traverse_xml("",simplexml_load_string($xml1)); +echo "---Done---\n"; +?> +--EXPECT-- +<person name="Joe"> + <child name="Ann"> + </child> + <child name="Marray"> + </child> +</person> +<person name="Boe"> + <child name="Joe"> + </child> + <child name="Ann"> + </child> +</person> +---------- +<person name="Joe"> + <child> + </child> +</person> +---Done---
\ No newline at end of file |
