<?php | |
/** | |
* Example: SimpleXML tell apart a single element and a list of elements with a single element | |
* | |
* @link https://hakre.wordpress.com/2013/02/12/simplexml-type-cheatsheet/ | |
* @libk http://stackoverflow.com/a/14829309/367456 | |
*/ | |
$buffer = <<<XML | |
<root> | |
<result>the one childre</result> | |
</root> | |
XML; | |
$xml = simplexml_load_string($buffer); | |
/** | |
* @param SimpleXMLElement $element | |
*/ | |
function sxml_show_info(SimpleXMLElement $element) | |
{ | |
$isSingleElement = $element[0] == $element; | |
$isListOfElements = $element[0] != $element | |
and $element->attributes() !== NULL; | |
printf(" Is single-element? - %s\n", $isSingleElement ? 'Yes' : 'No'); | |
printf(" Is list-of-elements? - %s\n", $isListOfElements ? 'Yes' : 'No'); | |
} | |
echo "For the single element:\n"; | |
sxml_show_info($xml->result[0]); | |
echo "\n"; | |
echo "For the list of elements with a single item:\n"; | |
sxml_show_info($xml->result); | |
echo "\n"; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
This comment has been minimized.
Execute it on 3v4l.org, results were:
Output for 5.2.2 - 7.0.0beta3, hhvm-3.3.1 - 3.8.1
Do not use it with a PHP version before 5.2.2.