PHP simplexml_load_string() 函数

返回上一级

PHP SimpleXML 扩展的 simplexml_load_string() 函数转换形式良好的 XML 字符串为 SimpleXMLElement 对象

( PHP >= 5)

函数原型

simplexml_load_string(data,classname,options,ns,is_prefix);

参数

参数 描述
data 必需。形式良好的 XML 字符串
classname 可选。新对象的 class
options 可选。附加的 Libxml 参数
通过指定选项为 1 或 0(TRUE 或 FALSE,例如 LIBXML_NOBLANKS(1))进行设置
ns 可选。规定命名空间前缀或 URI
is_prefix 可选。一个布尔值
如果 ns 是前缀则为 TRUE
如果 ns 是 URI 则为 FALSE
默认是 FALSE

参数 options 可选的值如下

说明
LIBXML_COMPACT 激活节点的优化配置(可加速应用程序)
LIBXML_DTDATTR 设置默认的 DTD 属性
LIBXML_DTDLOAD 装载额外的子集
LIBXML_DTDVALID 验证 DTD 有效性
LIBXML_NOBLANKS 删除空节点
LIBXML_NOCDATA 将 CDATA 设置为文本节点
LIBXML_NOEMPTYTAG 扩展空标签(例如 <br/> 到 <br></br>)
仅在 DOMDocument->save() 和 DOMDocument->saveXML() 函数中有效
LIBXML_NOENT 替代实体
LIBXML_NOERROR 不显示错误报告
LIBXML_NONET 装载文档时停止访问网络
LIBXML_NOWARNING 不显示警告报告
LIBXML_NOXMLDECL 当存储一个文档时放弃 XML 声明
LIBXML_NSCLEAN 删除多余的名称空间声明
LIBXML_PARSEHUGE 设置 XML_PARSE_HUGE 标志,用来放宽解析器的任何强制限制
这将影响诸如文档的最大深度和文本节点大小限制等
LIBXML_XINCLUDE 使用 XInclude 替代
LIBXML_ERR_ERROR 获取可纠正的错误
LIBXML_ERR_FATAL 获取致命错误
LIBXML_ERR_NONE 不获取错误
LIBXML_ERR_WARNING 获取简单警告
LIBXML_VERSION 获取 libxml 版本(例如 20605 或 20617)
LIBXML_DOTTED_VERSION 获取带点的 libxml 版本(例如 2.6.5 或 2.6.17)

返回值

如果成功则返回 SimpleXMLElement 对象,如果失败则返回 FALSE

范例

下面的代码转换形式良好的 XML 字符串为 SimpleXMLElement 对象

然后输出对象的键和元素

<?php

$note = <<<XML
<note>
    <to>Tove</to>
    <from>Jani</from>
    <heading>Reminder</heading>
    <body>Don't forget me this weekend!</body>
</note>
XML;

$xml=simplexml_load_string($note);
print_r($xml);

运行范例 »

运行以上 PHP 范例,输出结果如下

SimpleXMLElement Object
(
    [to] => Tove
    [from] => Jani
    [heading] => Reminder
    [body] => Don't forget me this weekend!
)

范例 2

输出 XML 字符串中每个元素的数据

<?php

$note = <<<XML
<note>
    <to>Tove</to>
    <from>Jani</from>
    <heading>Reminder</heading>
    <body>Don't forget me this weekend!</body>
</note>
XML;

$xml=simplexml_load_string($note);
echo $xml->to , "<br>";
echo $xml->from , "<br>";
echo $xml->heading , "<br>";
echo $xml->body;

运行范例 »

运行以上 PHP 范例,输出结果如下

Tove
Jani
Reminder
Don't forget me this weekend!

范例 3

输出 XML 字符串中每个子节点的元素名称和数据

<?php

$note=<<<XML
<note>
    <to>Tove</to>
    <from>Jani</from>
    <heading>Reminder</heading>
    <body>Don't forget me this weekend!</body>
</note>
XML;

$xml=simplexml_load_string($note);
echo $xml->getName() , "<br>";

foreach($xml->children() as $child)
{  
    echo $child->getName() . ": " , $child , "<br>";  
}

运行范例 »

运行以上 PHP 范例,输出结果如下

note
to: Tove
from: Jani
heading: Reminder
body: Don't forget me this weekend!

返回上一级

PHP 5 函数参考手册

关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

  简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2022 简单教程 twle.cn All Rights Reserved.