PHP SimpleXML函数

PHP SimpleXMLElement::__construct() 方法创建一个新的 SimpleXMLElement 对象。

语法

public SimpleXMLElement::__construct(data, options, dataIsURL, 
                                     namespaceOrPrefix, isPrefix) 

参数

data必填。 如果 dataIsURL 为 true,则指定 XML 字符串或 XML 文档的路径或 URL。
options可选。 使用此参数指定其他 Libxml 参数,这些参数会影响 XML 文档的读取。
dataIsURL可选。 如果设置为 true,data 将被视为 XML 文档的路径或 URL,而不是字符串数据。默认为 false。
namespaceOrPrefix可选。 命名空间前缀或 URI。
isPrefix可选。 如果为 true,namespaceOrPrefix 将被视为前缀。如果为 false,namespaceOrPrefix 将被视为 URI。默认为 false。

返回值

返回一个SimpleXMLElement 表示数据的对象。

异常

为 XML 数据中发现的每个错误生成 E_WARNING 错误消息。

注意:使用 libxml_use_internal_errors() 抑制所有 XML 错误,和 libxml_get_errors() 之后迭代它们。

示例:创建 SimpleXMLElement 对象

在下面的示例中,此方法用于将给定的 XML 字符串转换为 SimpleXMLElement 对象。

<?php
$xmlstr = <<<XML
<userlist> 
  <user id="John123">
    <name>John Smith</name>
    <city>New York</city>
    <phone>+1-8054098000</phone>
  </user>
  
  <user id="Marry2015">
    <name>Marry G.</name>
    <city>London</city>
    <phone>+33-147996101</phone>
  </user> 
</userlist> 
XML;

$xml = new SimpleXMLElement($xmlstr);
 
print_r($xml);
?> 

上述代码的输出将是:

SimpleXMLElement Object
(
    [user] => Array
        (
            [0] => SimpleXMLElement Object
                (
                    [@attributes] => Array
                        (
                            [id] => John123
                        )

                    [name] => John Smith
                    [city] => New York
                    [phone] => +1-8054098000
                )

            [1] => SimpleXMLElement Object
                (
                    [@attributes] => Array
                        (
                            [id] => Marry2015
                        )

                    [name] => Marry G.
                    [city] => London
                    [phone] => +33-147996101
                )

        )

) 

示例:从 URL 创建 SimpleXMLElement 对象

在下面的示例中, SimpleXMLElement 对象是从 URL 创建的。

<?php
$xml = new SimpleXMLElement('http://example.org/document.xml', NULL, TRUE);
echo $xml->asXML();
?>