- var_dump: documentation ( source)
- in_array: documentation ( source)
<?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()
{
return (bool)count($this->children());
}
public function nodeIsCollection()
{
var_dump(count($this));exit;
return (count);
}
public function getChildrenKeys()
{
$all = [];
$children = $this->children();
foreach ($children as $key => $child) {
if (!in_array($key, $all))
$all[] = $key;
}
return $all;
}
}
$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 inherit="yes">data</test>'.
' </row3>'.
' </rows>'.
' </body>'.
'</request>';
$obj = new MyXML($s);
$row = $obj->firstChild()->firstChild();
var_dump($row->getChildrenKeys());