实例

转换形式良好的 XML 字符串为 SimpleXMLElement 对象,然后输出对象的键和元素:

<?php
$note=<<<XML
<note>高佣联盟 www.cgewang.com
<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);
?>

定义和用法

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


语法

simplexml_load_string(data,classname,options,ns,is_prefix);
参数 描述
data 必需。规定形式良好的 XML 字符串。
classname 可选。规定新对象的 class。
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 - 扩展空标签(例如 <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)
ns 可选。规定命名空间前缀或 URI。
is_prefix 可选。规定一个布尔值。如果 ns 是前缀则为 TRUE,如果 ns 是 URI 则为 FALSE。默认是 FALSE。

技术细节

返回值: 如果成功则返回 SimpleXMLElement 对象,如果失败则返回 FALSE。
PHP 版本: 5+


更多实例

实例 1

输出 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;
?>

实例 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->getName() . "<br>";

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

PHP simplexml_load_string() 函数的更多相关文章

  1. 使用tp访问数据库时提示错误: 'PDO' not found, 和not defined constant mysql_attr_init_command 和call an undefined function Think\Template\simpleXml_load_string()函数

    第一个问题: PDO not found 是因为 php没有安装pdo扩展, 无法提供给 php 以 数据库访问功能, 所以 报错是在文件: Think/Db.class.php的里面. 解决方法是: ...

  2. PHP常用函数大全

    usleep() 函数延迟代码执行若干微秒.unpack() 函数从二进制字符串对数据进行解包.uniqid() 函数基于以微秒计的当前时间,生成一个唯一的 ID.time_sleep_until() ...

  3. PHP常用函数备用

    刚学习php的时候,我也为记忆php函数苦恼不已.认为干嘛记忆这么枯燥无味的东西呢?用的时候查一下手册不就行了吗?但是当时因为身在辅导机构,还是记忆了一大堆自己并不感兴趣的函数. 由此就想起来,小的时 ...

  4. PHP常用函数大全。

    php usleep() 函数延迟代码执行若干微秒. unpack() 函数从二进制字符串对数据进行解包. uniqid() 函数基于以微秒计的当前时间,生成一个唯一的 ID. time_sleep_ ...

  5. 最全的PHP常用函数大全

    PHP的一些常用函数 quotemeta() 函数在字符串中某些预定义的字符前添加反斜杠. quoted_printable_decode() 函数对经过 quoted-printable 编码后的字 ...

  6. PHP 各种函数

    usleep() 函数延迟代码执行若干微秒. unpack() 函数从二进制字符串对数据进行解包. uniqid() 函数基于以微秒计的当前时间,生成一个唯一的 ID. time_sleep_unti ...

  7. php函数整理

    php usleep() 函数延迟代码执行若干微秒. unpack() 函数从二进制字符串对数据进行解包. uniqid() 函数基于以微秒计的当前时间,生成一个唯一的 ID. time_sleep_ ...

  8. 【笔记】php常用函数

    phpusleep() 函数延迟代码执行若干微秒.unpack() 函数从二进制字符串对数据进行解包.uniqid() 函数基于以微秒计的当前时间,生成一个唯一的 ID.time_sleep_unti ...

  9. SimpleXML系列函数操作XML

    创建SimpleXML对象 种方法来创建对象,分别是: l  Simplexml_load_file()函数,将指定的文件解析到内存中. l  Simplexml_load_string()函数,将创 ...

随机推荐

  1. [Python] datetime.timedelta模块用法

    python使用datetime模块timedelta实现日期时间相加: python计算明天的日期: from datetime import datetime from datetime impo ...

  2. css3 pointer-events(阻止hover、active、onclick等触发事件)

    pointer-events CSS 属性指定在什么情况下 (如果有) 某个特定的图形元素可以成为鼠标事件的 target. /* Keyword values */ pointer-events: ...

  3. centos-pip不存在安装失败的解决办法

    1.centos下安装pip失败 2.解决办法 需要先安装扩展源EPEL. EPEL(http://fedoraproject.org/wiki/EPEL) 是由 Fedora 社区打造,为 RHEL ...

  4. OutOfMemory相关问题(内存溢出异常OOM)

    OutOfMemory(内存溢出异常OOM) java.lang.OutOfMemoryError :Thrown when the Java Virtual Machine cannot alloc ...

  5. HashMap等集合初始化时应制定初始化大小

    阿里巴巴开发规范中,推荐用户在初始化HashMap时,应指定集合初始值大小. 一.原因 这个不用多想,肯定是效率问题,那为什么会造成效率问题呢? 当我们new一个HashMap没有对其容量进行初始化的 ...

  6. 数据可视化之DAX篇(七) Power BI中用DAX生成的表如何添加索引列?

    ​https://zhuanlan.zhihu.com/p/74732578 来源于知识星球中一个星友的问题,使用DAX在PowerBI中新建了一个表,如何为这个表添加索引列呢? 假如数据模型中只有一 ...

  7. LDAP脚本批量导出用户

    背景:工作原因,搭建了LDAP服务,然后用户数过多,因为懒所以就通过python代码生成ldap脚本进行批量导入用户 1.整理用户名单,格式如下: 注:上述格式影响代码中的excel读取代码 2.py ...

  8. TCP 和 UDP,哪个更胜一筹

    作为 TCP/IP 中两个最具有代表性的传输层协议,TCP 和 UDP 经常被拿出来相互比较.这些协议具体有什么区别,又是什么作用呢? 在 IT 圈混迹多年的小伙伴们,对 TCP 和 UDP 肯定再熟 ...

  9. 如何用 Python 做自动化测试【进阶必看】

    一.Selenium 环境部署 1. window 环境部署 1.1 当前环境Win10 64 位系统:Python3.6.2(官方已经更新到了 3.6.4) 官方下载地址:https://www.p ...

  10. 使用 maven 创建项目模板

    前言 配置 demo 工程 生成模板 生成项目 上传模板到仓库 参看链接 前言 微服务的概念越来越流行,随着服务粒度越来越细,拆分的模块越来越明确,我们的工程项目也变得越来越多. 有时候一个项目搭建, ...