diff options
Diffstat (limited to 'engine/lib/xml.php')
| -rw-r--r-- | engine/lib/xml.php | 38 | 
1 files changed, 1 insertions, 37 deletions
diff --git a/engine/lib/xml.php b/engine/lib/xml.php index 813bc4ee0..ff82d7e8a 100644 --- a/engine/lib/xml.php +++ b/engine/lib/xml.php @@ -101,47 +101,11 @@ function serialise_array_to_xml(array $data, $n = 0) {  /**   * Parse an XML file into an object. - * Based on code from http://de.php.net/manual/en/function.xml-parse-into-struct.php by - * efredricksen at gmail dot com   *   * @param string $xml The XML   *   * @return object   */  function xml_to_object($xml) { -	$parser = xml_parser_create(); - -	// Parse $xml into a structure -	xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1); -	xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0); -	xml_parse_into_struct($parser, $xml, $tags); - -	xml_parser_free($parser); - -	$elements = array(); -	$stack = array(); - -	foreach ($tags as $tag) { -		$index = count($elements); - -		if ($tag['type'] == "complete" || $tag['type'] == "open") { -			$elements[$index] = new XmlElement; -			$elements[$index]->name = $tag['tag']; -			$elements[$index]->attributes = elgg_extract('attributes', $tag, ''); -			$elements[$index]->content = elgg_extract('value', $tag, ''); - -			if ($tag['type'] == "open") { -				$elements[$index]->children = array(); -				$stack[count($stack)] = &$elements; -				$elements = &$elements[$index]->children; -			} -		} - -		if ($tag['type'] == "close") { -			$elements = &$stack[count($stack) - 1]; -			unset($stack[count($stack) - 1]); -		} -	} - -	return $elements[0]; +	return new ElggXMLElement($xml);  }  | 
