95 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			95 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
 | 
						|
namespace Safe;
 | 
						|
 | 
						|
use Safe\Exceptions\SimplexmlException;
 | 
						|
 | 
						|
/**
 | 
						|
 * This function takes a node of a DOM
 | 
						|
 * document and makes it into a SimpleXML node. This new object can
 | 
						|
 * then be used as a native SimpleXML element.
 | 
						|
 *
 | 
						|
 * @param \DOMNode $node A DOM Element node
 | 
						|
 * @param string $class_name You may use this optional parameter so that
 | 
						|
 * simplexml_import_dom will return an object of
 | 
						|
 * the specified class. That class should extend the
 | 
						|
 * SimpleXMLElement class.
 | 
						|
 * @return \SimpleXMLElement Returns a SimpleXMLElement.
 | 
						|
 * @throws SimplexmlException
 | 
						|
 *
 | 
						|
 */
 | 
						|
function simplexml_import_dom(\DOMNode $node, string $class_name = "SimpleXMLElement"): \SimpleXMLElement
 | 
						|
{
 | 
						|
    error_clear_last();
 | 
						|
    $result = \simplexml_import_dom($node, $class_name);
 | 
						|
    if ($result === false) {
 | 
						|
        throw SimplexmlException::createFromPhpError();
 | 
						|
    }
 | 
						|
    return $result;
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
/**
 | 
						|
 * Convert the well-formed XML document in the given file to an object.
 | 
						|
 *
 | 
						|
 * @param string $filename Path to the XML file
 | 
						|
 *
 | 
						|
 * Libxml 2 unescapes the URI, so if you want to pass e.g.
 | 
						|
 * b&c as the URI parameter a,
 | 
						|
 * you have to call
 | 
						|
 * simplexml_load_file(rawurlencode('http://example.com/?a=' .
 | 
						|
 * urlencode('b&c'))). Since PHP 5.1.0 you don't need to do
 | 
						|
 * this because PHP will do it for you.
 | 
						|
 * @param string $class_name You may use this optional parameter so that
 | 
						|
 * simplexml_load_file will return an object of
 | 
						|
 * the specified class. That class should extend the
 | 
						|
 * SimpleXMLElement class.
 | 
						|
 * @param int $options Since PHP 5.1.0 and Libxml 2.6.0, you may also use the
 | 
						|
 * options parameter to specify additional Libxml parameters.
 | 
						|
 * @param string $ns Namespace prefix or URI.
 | 
						|
 * @param bool $is_prefix TRUE if ns is a prefix, FALSE if it's a URI;
 | 
						|
 * defaults to FALSE.
 | 
						|
 * @return \SimpleXMLElement Returns an object of class SimpleXMLElement with
 | 
						|
 * properties containing the data held within the XML document.
 | 
						|
 * @throws SimplexmlException
 | 
						|
 *
 | 
						|
 */
 | 
						|
function simplexml_load_file(string $filename, string $class_name = "SimpleXMLElement", int $options = 0, string $ns = "", bool $is_prefix = false): \SimpleXMLElement
 | 
						|
{
 | 
						|
    error_clear_last();
 | 
						|
    $result = \simplexml_load_file($filename, $class_name, $options, $ns, $is_prefix);
 | 
						|
    if ($result === false) {
 | 
						|
        throw SimplexmlException::createFromPhpError();
 | 
						|
    }
 | 
						|
    return $result;
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
/**
 | 
						|
 * Takes a well-formed XML string and returns it as an object.
 | 
						|
 *
 | 
						|
 * @param string $data A well-formed XML string
 | 
						|
 * @param string $class_name You may use this optional parameter so that
 | 
						|
 * simplexml_load_string will return an object of
 | 
						|
 * the specified class. That class should extend the
 | 
						|
 * SimpleXMLElement class.
 | 
						|
 * @param int $options Since PHP 5.1.0 and Libxml 2.6.0, you may also use the
 | 
						|
 * options parameter to specify additional Libxml parameters.
 | 
						|
 * @param string $ns Namespace prefix or URI.
 | 
						|
 * @param bool $is_prefix TRUE if ns is a prefix, FALSE if it's a URI;
 | 
						|
 * defaults to FALSE.
 | 
						|
 * @return \SimpleXMLElement Returns an object of class SimpleXMLElement with
 | 
						|
 * properties containing the data held within the xml document.
 | 
						|
 * @throws SimplexmlException
 | 
						|
 *
 | 
						|
 */
 | 
						|
function simplexml_load_string(string $data, string $class_name = "SimpleXMLElement", int $options = 0, string $ns = "", bool $is_prefix = false): \SimpleXMLElement
 | 
						|
{
 | 
						|
    error_clear_last();
 | 
						|
    $result = \simplexml_load_string($data, $class_name, $options, $ns, $is_prefix);
 | 
						|
    if ($result === false) {
 | 
						|
        throw SimplexmlException::createFromPhpError();
 | 
						|
    }
 | 
						|
    return $result;
 | 
						|
}
 |