summaryrefslogtreecommitdiff
path: root/ext/simplexml/tests
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@php.net>2003-12-18 13:28:00 +0000
committerDmitry Stogov <dmitry@php.net>2003-12-18 13:28:00 +0000
commiteb973da1d3397dfc30b19a10620b0e98aa385a62 (patch)
treef87174313792af96226680dad54291c1ae8ec052 /ext/simplexml/tests
parent33ed73cb515a642b70611b5322ae65c6b79f6f07 (diff)
downloadphp-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.phpt76
-rw-r--r--ext/simplexml/tests/018.phpt65
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