@ 2013-04-19T11:03:43Z <?php
class MyXML extends SimpleXMLElement
{
public function firstChild()
{
$children = $this->children();
foreach ($children as $child)
break;
return $child;
}
public function keyHasTwins($key)
{
if (isset($this->$key))
return (count($this->$key)>1);
else
return false;
}
public function hasChildren()
{
var_dump(count($this->children()));
return (bool)count($this->children());
}
}
$s = '<?xml version="1.0" encoding="utf-8" standalone="yes" ?>'.
'<request>'.
' <body>'.
' <rows>'.
' <row id="1"/>'.
' <row id="2"/>'.
' <row id="3"/>'.
' <row2 ver="2.0">test data</row2>'.
' <row2 ver="2.1">test data 2</row2>'.
' <row3 ver="3.0">'.
' <test>data</test>'.
' </row3>'.
' </rows>'.
' </body>'.
'</request>';
$obj = new MyXML($s);
$rows = $obj->firstChild()->firstChild();
var_dump($rows->children(), $rows->hasChildren('row'));
Enable javascript to submit You have javascript disabled. You will not be able to edit any code.
Output for 8.1.0 - 8.1.28 , 8.2.0 - 8.2.18 , 8.3.0 - 8.3.6 Deprecated: Return type of MyXML::hasChildren() should either be compatible with SimpleXMLElement::hasChildren(): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /in/O1mih on line 20
int(6)
object(MyXML)#4 (3) {
["row"]=>
array(3) {
[0]=>
object(MyXML)#3 (1) {
["@attributes"]=>
array(1) {
["id"]=>
string(1) "1"
}
}
[1]=>
object(MyXML)#6 (1) {
["@attributes"]=>
array(1) {
["id"]=>
string(1) "2"
}
}
[2]=>
object(MyXML)#7 (1) {
["@attributes"]=>
array(1) {
["id"]=>
string(1) "3"
}
}
}
["row2"]=>
array(2) {
[0]=>
string(9) "test data"
[1]=>
string(11) "test data 2"
}
["row3"]=>
object(MyXML)#8 (2) {
["@attributes"]=>
array(1) {
["ver"]=>
string(3) "3.0"
}
["test"]=>
string(4) "data"
}
}
bool(true)
Output for 5.1.3 - 5.1.6 , 5.2.0 - 5.2.17 , 5.3.0 - 5.3.29 , 5.4.0 - 5.4.45 , 5.5.0 - 5.5.38 , 5.6.0 - 5.6.40 , 7.0.0 - 7.0.33 , 7.1.0 - 7.1.33 , 7.2.0 - 7.2.33 , 7.3.0 - 7.3.16 , 7.3.18 - 7.3.33 , 7.4.0 - 7.4.4 , 7.4.6 - 7.4.33 , 8.0.0 - 8.0.30 int(6)
object(MyXML)#4 (3) {
["row"]=>
array(3) {
[0]=>
object(MyXML)#3 (1) {
["@attributes"]=>
array(1) {
["id"]=>
string(1) "1"
}
}
[1]=>
object(MyXML)#6 (1) {
["@attributes"]=>
array(1) {
["id"]=>
string(1) "2"
}
}
[2]=>
object(MyXML)#7 (1) {
["@attributes"]=>
array(1) {
["id"]=>
string(1) "3"
}
}
}
["row2"]=>
array(2) {
[0]=>
string(9) "test data"
[1]=>
string(11) "test data 2"
}
["row3"]=>
object(MyXML)#8 (2) {
["@attributes"]=>
array(1) {
["ver"]=>
string(3) "3.0"
}
["test"]=>
string(4) "data"
}
}
bool(true)
Output for 7.3.17 , 7.4.5 int(6)
object(MyXML)#4 (3) {
["row"]=>
array(3) {
[0]=>
object(MyXML)#3 (1) {
["@attributes"]=>
array(1) {
["id"]=>
string(1) "1"
}
}
[1]=>
object(MyXML)#6 (1) {
["@attributes"]=>
array(1) {
["id"]=>
string(1) "2"
}
}
[2]=>
object(MyXML)#7 (1) {
["@attributes"]=>
array(1) {
["id"]=>
string(1) "3"
}
}
}
["row2"]=>
array(2) {
[0]=>
object(MyXML)#8 (2) {
["@attributes"]=>
array(1) {
["ver"]=>
string(3) "2.0"
}
[0]=>
string(9) "test data"
}
[1]=>
object(MyXML)#9 (2) {
["@attributes"]=>
array(1) {
["ver"]=>
string(3) "2.1"
}
[0]=>
string(11) "test data 2"
}
}
["row3"]=>
object(MyXML)#10 (2) {
["@attributes"]=>
array(1) {
["ver"]=>
string(3) "3.0"
}
["test"]=>
string(4) "data"
}
}
bool(true)
Output for 5.1.2 int(6)
object(MyXML)#4 (0) {
}
bool(true)
Output for 5.0.0 - 5.0.5 , 5.1.0 - 5.1.1 int(1)
object(MyXML)#4 (0) {
}
bool(true)
Output for 4.4.2 - 4.4.9 Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /in/O1mih on line 4
Process exited with code 255 . Output for 4.3.0 - 4.3.1 , 4.3.5 - 4.3.11 , 4.4.0 - 4.4.1 Parse error: parse error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /in/O1mih on line 4
Process exited with code 255 . Output for 4.3.2 - 4.3.4 Parse error: parse error, expecting `T_OLD_FUNCTION' or `T_FUNCTION' or `T_VAR' or `'}'' in /in/O1mih on line 4
Process exited with code 255 . preferences:dark mode live preview
293.89 ms | 401 KiB | 460 Q