public static function PHPUnit_Util_XML::xmlToVariable in Zircon Profile 8
Same name and namespace in other branches
- 8.0 vendor/phpunit/phpunit/src/Util/XML.php \PHPUnit_Util_XML::xmlToVariable()
"Convert" a DOMElement object into a PHP variable.
@since Method available since Release 3.4.0
Parameters
DOMElement $element:
Return value
mixed
1 call to PHPUnit_Util_XML::xmlToVariable()
- PHPUnit_Util_Configuration::getListenerConfiguration in vendor/
phpunit/ phpunit/ src/ Util/ Configuration.php - Returns the configuration for listeners.
File
- vendor/
phpunit/ phpunit/ src/ Util/ XML.php, line 195
Class
- PHPUnit_Util_XML
- XML helpers.
Code
public static function xmlToVariable(DOMElement $element) {
$variable = null;
switch ($element->tagName) {
case 'array':
$variable = array();
foreach ($element
->getElementsByTagName('element') as $element) {
$item = $element->childNodes
->item(0);
if ($item instanceof DOMText) {
$item = $element->childNodes
->item(1);
}
$value = self::xmlToVariable($item);
if ($element
->hasAttribute('key')) {
$variable[(string) $element
->getAttribute('key')] = $value;
}
else {
$variable[] = $value;
}
}
break;
case 'object':
$className = $element
->getAttribute('class');
if ($element
->hasChildNodes()) {
$arguments = $element->childNodes
->item(1)->childNodes;
$constructorArgs = array();
foreach ($arguments as $argument) {
if ($argument instanceof DOMElement) {
$constructorArgs[] = self::xmlToVariable($argument);
}
}
$class = new ReflectionClass($className);
$variable = $class
->newInstanceArgs($constructorArgs);
}
else {
$variable = new $className();
}
break;
case 'boolean':
$variable = $element->textContent == 'true' ? true : false;
break;
case 'integer':
case 'double':
case 'string':
$variable = $element->textContent;
settype($variable, $element->tagName);
break;
}
return $variable;
}