--- /dev/null
+--TEST--
+Bug #62639 (XML structure broken)
+--SKIPIF--
+<?php
+if (!extension_loaded("simplexml")) die("skip SimpleXML not available");
+?>
+--FILE--
+<?php
+
+class A extends SimpleXMLElement
+{
+}
+
+$xml1 = <<<XML
+<?xml version="1.0"?>
+<a>
+ <b>
+ <c>
+ <value attr="Some Attr">Some Value</value>
+ </c>
+ </b>
+</a>
+XML;
+
+$a1 = new A($xml1);
+
+foreach ($a1->b->c->children() as $key => $value) {
+ var_dump($value);
+}
+
+$xml2 = <<<XML
+<?xml version="1.0"?>
+<a>
+ <b>
+ <c><value attr="Some Attr">Some Value</value></c>
+ </b>
+</a>
+XML;
+
+$a2 = new A($xml2);
+
+foreach ($a2->b->c->children() as $key => $value) {
+ var_dump($value);
+}?>
+--EXPECT--
+object(A)#2 (2) {
+ ["@attributes"]=>
+ array(1) {
+ ["attr"]=>
+ string(9) "Some Attr"
+ }
+ [0]=>
+ string(10) "Some Value"
+}
+object(A)#3 (2) {
+ ["@attributes"]=>
+ array(1) {
+ ["attr"]=>
+ string(9) "Some Attr"
+ }
+ [0]=>
+ string(10) "Some Value"
+}
\ No newline at end of file
--- /dev/null
+--TEST--
+Bug #67116 (Inconsistent parsing of Nodes w/o linefeed)
+--SKIPIF--
+<?php
+if (!extension_loaded("simplexml")) die("skip SimpleXML not available");
+?>
+--FILE--
+<?php
+
+$xml = <<<XML
+<?xml version="1.0" encoding="UTF-8"?>
+<aa>
+ <bs>
+ <b>b</b>
+ </bs>
+ <cs><c>b</c></cs>
+ <ds><d id="d"></d></ds>
+ <es>
+ <e id="e"></e>
+ </es>
+ <fs><f id="f"></f><f id="f"></f></fs>
+</aa>
+XML;
+$sxe = simplexml_load_string($xml);
+print_r($sxe);
+
+?>
+--EXPECT--
+SimpleXMLElement Object
+(
+ [bs] => SimpleXMLElement Object
+ (
+ [b] => b
+ )
+
+ [cs] => SimpleXMLElement Object
+ (
+ [c] => b
+ )
+
+ [ds] => SimpleXMLElement Object
+ (
+ [d] => SimpleXMLElement Object
+ (
+ [@attributes] => Array
+ (
+ [id] => d
+ )
+
+ )
+
+ )
+
+ [es] => SimpleXMLElement Object
+ (
+ [e] => SimpleXMLElement Object
+ (
+ [@attributes] => Array
+ (
+ [id] => e
+ )
+
+ )
+
+ )
+
+ [fs] => SimpleXMLElement Object
+ (
+ [f] => Array
+ (
+ [0] => SimpleXMLElement Object
+ (
+ [@attributes] => Array
+ (
+ [id] => f
+ )
+
+ )
+
+ [1] => SimpleXMLElement Object
+ (
+ [@attributes] => Array
+ (
+ [id] => f
+ )
+
+ )
+
+ )
+
+ )
+
+)
--- /dev/null
+--TEST--
+Bug #69169 (simplexml_load_string parse wrongly when xml given in one row)
+--SKIPIF--
+<?php
+if (!extension_loaded("simplexml")) die("skip SimpleXML not available");
+?>
+--FILE--
+<?php
+$a = '<?xml version="1.0" encoding="UTF-8"?>
+<root a="b">
+ <row b="y">
+ <item s="t" />
+ </row>
+ <row p="c">
+ <item y="n" />
+ </row>
+</root>';
+$b = str_replace(array("\n", "\r", "\t"), "", $a);
+$simple_xml = simplexml_load_string($b);
+print_r($simple_xml);
+?>
+--EXPECT--
+SimpleXMLElement Object
+(
+ [@attributes] => Array
+ (
+ [a] => b
+ )
+
+ [row] => Array
+ (
+ [0] => SimpleXMLElement Object
+ (
+ [@attributes] => Array
+ (
+ [b] => y
+ )
+
+ [item] => SimpleXMLElement Object
+ (
+ [@attributes] => Array
+ (
+ [s] => t
+ )
+
+ )
+
+ )
+
+ [1] => SimpleXMLElement Object
+ (
+ [@attributes] => Array
+ (
+ [p] => c
+ )
+
+ [item] => SimpleXMLElement Object
+ (
+ [@attributes] => Array
+ (
+ [y] => n
+ )
+
+ )
+
+ )
+
+ )
+
+)
--- /dev/null
+--TEST--
+Bug #69491 (simplexml doesn't correctly parse empty nodes on same line as another node)
+--SKIPIF--
+<?php
+if (!extension_loaded("simplexml")) die("skip SimpleXML not available");
+?>
+--FILE--
+<?php
+var_dump(simplexml_load_string('<a>
+ <b><c/></b>
+</a>'));?>
+--EXPECT--
+object(SimpleXMLElement)#1 (1) {
+ ["b"]=>
+ object(SimpleXMLElement)#2 (1) {
+ ["c"]=>
+ object(SimpleXMLElement)#3 (0) {
+ }
+ }
+}