diff options
Diffstat (limited to 'engine/classes/ElggXMLElement.php')
| -rw-r--r-- | engine/classes/ElggXMLElement.php | 24 | 
1 files changed, 20 insertions, 4 deletions
diff --git a/engine/classes/ElggXMLElement.php b/engine/classes/ElggXMLElement.php index 65a13912c..cbd3fc5ce 100644 --- a/engine/classes/ElggXMLElement.php +++ b/engine/classes/ElggXMLElement.php @@ -20,7 +20,12 @@ class ElggXMLElement {  		if ($xml instanceof SimpleXMLElement) {  			$this->_element = $xml;  		} else { +			// do not load entities +			$disable_load_entities = libxml_disable_entity_loader(true); +  			$this->_element = new SimpleXMLElement($xml); + +			libxml_disable_entity_loader($disable_load_entities);  		}  	} @@ -32,7 +37,7 @@ class ElggXMLElement {  	}  	/** -	 * @return array:string The attributes +	 * @return string[] The attributes  	 */  	public function getAttributes() {  		//include namespace declarations as attributes @@ -64,7 +69,7 @@ class ElggXMLElement {  	}  	/** -	 * @return array:ElggXMLElement Child elements +	 * @return ElggXMLElement[] Child elements  	 */  	public function getChildren() {  		$children = $this->_element->children(); @@ -76,6 +81,12 @@ class ElggXMLElement {  		return $result;  	} +	/** +	 * Override -> +	 *  +	 * @param string $name Property name +	 * @return mixed +	 */  	function __get($name) {  		switch ($name) {  			case 'name': @@ -94,6 +105,12 @@ class ElggXMLElement {  		return null;  	} +	/** +	 * Override isset +	 *  +	 * @param string $name Property name +	 * @return boolean +	 */  	function __isset($name) {  		switch ($name) {  			case 'name': @@ -111,5 +128,4 @@ class ElggXMLElement {  		}  		return false;  	} - -}
\ No newline at end of file +}  | 
