实例

函数创建一个新的 SimpleXMLElement 对象,然后输出 body 节点的内容:

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

$xml=new SimpleXMLElement($note);
echo $xml->body;
?>

定义和用法

__construct() 函数创建一个新的 SimpleXMLElement 对象。


语法

__construct(data,options,data_is_url,ns,is_prefix);
参数 描述
data 必需。形式良好的 XML 字符串或 XML 文档的路径或 URL(如果 data_is_url 是 TRUE)。
options 可选。规定附加的 Libxml 参数。通过指定选项为 1 或 0(TRUE 或 FALSE,例如 LIBXML_NOBLANKS(1))进行设置。
可能的值:
LIBXML_COMPACT - 激活节点的优化配置(可加速应用程序)
LIBXML_DTDATTR - 设置默认的 DTD 属性
LIBXML_DTDLOAD - 装载额外的子集
LIBXML_DTDVALID - 验证 DTD 有效性
LIBXML_NOBLANKS - 删除空节点
LIBXML_NOCDATA - 将 CDATA 设置为文本节点
LIBXML_NOEMPTYTAG - 扩展空标签,仅在 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)
data_is_url 可选。如果是 TRUE 表明 data 是 XML 文档的路径或 URL,而不是字符串数据。默认是 FALSE。
ns 可选。规定命名空间前缀或 URI。
is_prefix 可选。规定一个布尔值。如果 ns 是前缀则为 TRUE,如果 ns 是 URI 则为 FALSE。默认是 FALSE。

技术细节

返回值: 返回表示 data 的 SimpleXMLElement 对象。
PHP 版本: 5.0.1+
PHP 更新日志: PHP 5.1.2:新增了 optionsdata_is_url 参数。 PHP 5.2:新增了 nsis_prefix 参数。

更多实例

假设我们有如下的 XML 文件 note.xml:

<?xml version="1.0" encoding="UTF-8"?>
<note>
    <to>Tove</to>
    <from>Jani</from>
    <heading>Reminder</heading>
    <body>Don't forget me this weekend!</body>
</note>

实例 1

从 URL 中创建一个 SimpleXMLElement 对象:

<?php
$xml=new SimpleXMLElement("note.xml",0,TRUE);
echo $xml->asXML();
?>

热门教程

最新教程