PHP SimpleXML函数

PHP simplexml_load_string() 函数将格式正确的 XML 字符串转换为对象。

语法

simplexml_load_string(data, class_name, options, 
                      namespace_or_prefix, is_prefix) 

参数

data必填。 指定格式正确的 XML 字符串。
class_name可选。 指定新对象的类。该类应扩展 SimpleXMLElement 类。
options可选。 使用此参数指定其他 Libxml 参数。
namespace_or_prefix可选。 指定命名空间前缀或 URI。
is_prefix可选。 如果namespace_or_prefix 是前缀,则为 true;如果是 URI,则为 false。默认为 false。

返回值

返回SimpleXMLElement 类,其属性包含 XML 字符串中保存的数据,失败时返回 false。

注意:此函数可能返回布尔值 false,但也可能返回计算结果为 false 的非布尔值。因此,使用 === 运算符来测试该函数的返回值。

异常

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

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

示例:解释 XML 字符串

在下面的示例中,simplexml_load_string() 函数用于转换将给定的 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 = simplexml_load_string($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
                )

        )

)