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
)
)
)