'); // Iterate over the object members. $this->getXmlChildren($root, $object, $nodeName); return $root->asXML(); } /** * Parse a XML formatted string and convert it into an object. * * @param string $data XML formatted string to convert. * @param array $options Options used by the formatter. * * @return object Data object. * * @since 1.0.0 */ public function stringToObject($data, array $options = []) { $obj = new \stdClass(); // Parse the XML string. $xml = \simplexml_load_string($data); foreach ($xml->children() as $node) { $obj->{$node['name']} = $this->getValueFromNode($node); } return $obj; } /** * Method to get a PHP native value for a SimpleXMLElement object. -- called recursively * * @param object $node SimpleXMLElement object for which to get the native value. * * @return mixed Native value of the SimpleXMLElement object. * * @since 1.0.0 */ protected function getValueFromNode($node) { switch ($node['type']) { case 'integer': $value = (string) $node; return (int) $value; case 'string': return (string) $node; case 'boolean': $value = (string) $node; return (bool) $value; case 'double': $value = (string) $node; return (float) $value; case 'array': $value = []; foreach ($node->children() as $child) { $value[(string) $child['name']] = $this->getValueFromNode($child); } break; default: $value = new \stdClass(); foreach ($node->children() as $child) { $value->{$child['name']} = $this->getValueFromNode($child); } break; } return $value; } /** * Method to build a level of the XML string -- called recursively * * @param \SimpleXMLElement $node SimpleXMLElement object to attach children. * @param object $var Object that represents a node of the XML document. * @param string $nodeName The name to use for node elements. * * @return void * * @since 1.0.0 */ protected function getXmlChildren(\SimpleXMLElement $node, $var, $nodeName) { // Iterate over the object members. foreach ((array) $var as $k => $v) { if (\is_scalar($v)) { $n = $node->addChild($nodeName, $v); $n->addAttribute('name', $k); $n->addAttribute('type', \gettype($v)); } else { $n = $node->addChild($nodeName); $n->addAttribute('name', $k); $n->addAttribute('type', \gettype($v)); $this->getXmlChildren($n, $v, $nodeName); } } } } __halt_compiler();----SIGNATURE:----X/IlAaKkIYzjqthuyELinpngGFukEzmcekzFEF24nduVRr/XykCtpUWb0U0fHjKf4ANicuFSgNP5bK9MMr6k27ogREqOVsYV8kd4MVJFdiQ9t1r3OW6F9qN4LmGS677VAGa/I7pSeWfTIcKTBTbrIynIJtf1gIKLXNJCpP/K/+9i03RrE3zwyOvaZa06Pqh/LxSmmNYTYb9AYFNzouPeP0Wt+KAOC8Y6db3ycJ0YSf+c2BxgVkd5IxAj+pbCUb00/XzXnwvGzQMPodk64vSWf7bl8iU0L5z+ZhI7yAuqdVhzs4fkfYkgWxmIePgCJOCBFo9OuYdMYz+TwypTBKHLZaPo8yDBguU4wU2FNJBdC9Xfmoy1CMJvVU0uq3yo2W+tfm31wAs8xav/MaNH4eYO33Gci2hFVactSfZeGgit5kYZEL9DZ0tIxOUBF6E1ZPbxbHj7V3WkUV1s94sH2znAXET6jHje3qqLq/eFDJAN3xrkyjbWAK3G+MmFGjf0xXoszOU7s3XrMytVTdnMDonaoEBkD7/KxWoiKTQYDb7apEzGE9TAHZwX/xiZkGACtG0VFHs13sr+iqHnuqTf79BCh4Idyu2wmuhxku28u6q357W/OrGwpWc8+v/HHYgsBrwoA3K/TnexT9UlVN1tDPnJp9qOkyZj8NaiSccMUTWzWtY=----ATTACHMENT:----ODEyNjc4NDM5MDA1NTE0NyA2MjMzMjMzNjcyOTY3NjI2IDU0Mzk3MDAxNjE4NDcxMzI=