PHP SimpleXML


PHP SimpleXML 处理最普通的 XML 任务,其余的任务则交由其它扩展处理。


什么是 PHP SimpleXML?

SimpleXML 是 PHP 5 中的新特性。

SimpleXML 扩展提供了一种获取 XML 元素的名称和文本的简单方式。

与 DOM 或 Expat 解析器相比,SimpleXML 仅仅用几行代码就可以从 XML 元素中读取文本数据。

SimpleXML 可把 XML 文档(或 XML 字符串)转换为对象,比如:

  • 元素被转换为 SimpleXMLElement 对象的单一属性。当同一级别上存在多个元素时,它们会被置于数组中。
  • 属性通过使用关联数组进行访问,其中的索引对应属性名称。
  • 元素内部的文本被转换为字符串。如果一个元素拥有多个文本节点,则按照它们被找到的顺序进行排列。

当执行类似下列的基础任务时,SimpleXML 使用起来非常快捷:

  • 读取/提取 XML 文件/字符串的数据
  • 编辑文本节点或属性

然而,在处理高级 XML 时,比如命名空间,最好使用 Expat 解析器或 XML DOM。


安装

从 PHP 5 开始,SimpleXML 函数是 PHP 核心的组成部分。无需安装就可以使用这些函数。


PHP SimpleXML 实例

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

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

现在我们想要输出上面的 XML 文件的不同信息:

实例 1

输出 $xml 变量(是 SimpleXMLElement 对象)的键和元素:

<?php $xml=simplexml_load_file("note.xml"); print_r($xml); ?>

运行实例 »

以上代码将输出:

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

实例 2

输出 XML 文件中每个元素的数据:

<?php
$xml=simplexml_load_file("note.xml");
echo $xml->to . "<br>";
echo $xml->from . "<br>";
echo $xml->heading . "<br>";
echo $xml->body;
?>

运行实例 »

以上代码将输出:

Tove
Jani
Reminder
Don't forget me this weekend!

实例 3

输出每个子节点的元素名称和数据:

<?php
$xml=simplexml_load_file("note.xml");
echo $xml->getName() . "<br>";

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

运行实例 »

以上代码将输出:

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

最新文章

  1. windows下 安装 rabbitMQ 及操作常用命令
  2. node的passport.js验证
  3. 微信JS SDK Demo 官方案例
  4. Linux的三种特殊权限
  5. Usermod 命令详解
  6. 整理收藏一份PHP高级工程师的笔试…
  7. php学习之路
  8. table列等宽
  9. 等待事件:enq: HW - contention和enq: TM - contention
  10. python+selenium 自动化测试实战
  11. ES6 Promise 用法讲解
  12. 里氏替换原则(LSP)
  13. Back-off pulling image \&quot;registry.access.redhat.com/rhel7/pod-infrastructure:latest
  14. [Linux]linux下取消用户名和密码直接登录
  15. java生成pdf文件 --- Table
  16. 函数isNaN() parseFloat() parseInt() Math对象
  17. 使用VSTS的Git进行版本控制(六)——拉取请求
  18. Study 8 —— 行块元素及定位
  19. jQuery实现Marquee
  20. Oracle shrink space

热门文章

  1. HTML5(三)SVG vs. Canvas
  2. 无题 II 二分图最大匹配
  3. python—模块optparse的用法
  4. 隐写工具outguess安装使用介绍
  5. Jmeter系列(41)- Jmeter + Ant +Jenkins 持续集成
  6. 【XCTF】Cat
  7. scrapy(四): 爬取二级页面的内容
  8. 08-Python面对对象进阶
  9. bzoj3223Tyvj 1729 文艺平衡树
  10. Ubuntu18.04安装Docker并部署(编译、发布、构建镜像)Asp.NetCore项目全过程笔记