THE WORLD'S LARGEST WEB DEVELOPER SITE

PHP 教程

PHP 教程 PHP 简介 PHP 安装 PHP 语法 PHP 变量 PHP 5 echo 和 print 语句 PHP 数据类型 PHP 字符串函数 PHP 常量 PHP 运算符 PHP if...else...elseif 语句 PHP Switch 语句 PHP while 循环 PHP for 循环 PHP 函数 PHP 数组 PHP 数组排序 PHP 全局变量 - 超全局变量

PHP 表单

PHP 表单处理 PHP 表单验证 PHP 表单验证 - 必填字段 PHP 表单验证 - 验证 E-mail 和 URL PHP 表单验证 - 完成表单实例

PHP 高级教程

PHP 多维数组 PHP 日期和时间 PHP Include 文件 PHP 文件处理 PHP 文件打开_读取_关闭 PHP 文件创建_写入 PHP 文件上传 PHP Cookies PHP Sessions PHP 发送电子邮件 PHP 安全的电子邮件 PHP 错误处理 PHP 异常处理 PHP 过滤器(Filter)

PHP 数据库

PHP MySQL 简介 PHP MySQL 连接数据库 PHP MySQL 创建数据库和表 PHP MySQL Insert Into PHP MySQL Select PHP MySQL Where 子句 PHP MySQL Order By 关键词 PHP MySQL Update PHP MySQL Delete From PHP Database ODBC

PHP XML

PHP XML Expat 解析器 PHP XML DOM PHP SimpleXML

AJAX

AJAX 简介 AJAX XMLHttpRequest PHP 和 AJAX 请求 PHP 和 AJAX XML 实例 PHP 和 AJAX MySQL 数据库实例 PHP 和 AJAX responseXML 实例 PHP 和 AJAX Live Search PHP 和 AJAX RSS 阅读器 PHP 和 AJAX 投票

PHP 参考手册

PHP Array 函数 PHP Calendar 函数 PHP Date _ Time 函数 PHP Directory 函数 PHP Error 和 Logging 函数 PHP Filesystem 函数 PHP Filter 函数 PHP FTP 函数 PHP HTTP 函数 PHP libxml 函数 PHP Mail 函数 PHP Math 函数 PHP MySQL 函数 PHP 5 MySQLi 函数 PHP SimpleXML 函数 PHP 5 String 函数 PHP XML Parser 函数 PHP Zip File 函数 PHP 杂项函数 PHP 时区 PHP 测验

PHP XML DOM

内建的 DOM 解析器使在 PHP 中处理 XML 文档成为可能。

什么是 DOM?

W3C DOM 提供了针对 HTML 和 XML 文档的标准对象集,以及用于访问和操作这些文档的标准接口。

W3C DOM 被分为不同的部分 (Core, XML 和 HTML) 和不同的级别 (DOM Level 1/2/3):

  • Core DOM - 为任何结构化文档定义标准的对象集
  • XML DOM - 为 XML 文档定义标准的对象集
  • HTML DOM - 为 HTML 文档定义标准的对象集

如果您希望学习更多有关 XML DOM 的知识,请访问我们的 XML DOM 教程

XML 解析

如需读取和更新 - 创建创建并处理 - 一个 XML 文档,您需要 XML 解析器。

有两种基本的 XML 解析器类型:

  • 基于树的解析器:这种解析器把 XML 文档转换为树型结构。它分析整篇文档,并提供了 API 来访问树种的元素,例如文档对象模型 (DOM)。
  • 基于事件的解析器:将 XML 文档视为一系列的事件。当某个具体的事件发生时,解析器会调用函数来处理。

DOM 解析器是基于树的解析器。

请看下面的 XML 文档片段:

<?xml version="1.0" encoding="ISO-8859-1"?>
<from>John</from>

XML DOM 把 XML 视为一个树形结构:

  • Level 1: XML 文档
  • Level 2: 根元素: <from>
  • Level 3: 文本元素: "John"

安装

DOM XML 解析器函数是 PHP 核心的组成部分。无需安装就可以使用这些函数。

XML 文件

将在我们的例子中使用下面的 XML 文件:

<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>

加载和输出 XML

我们需要初始化 XML 解析器,加载 XML,并把它输出:

例子

<?php
$xmlDoc = new DOMDocument();
$xmlDoc->load("note.xml");

print $xmlDoc->saveXML();
?>

以上代码的输出:

George John Reminder Don't forget the meeting!

假如您在浏览器窗口中查看源代码,会看到下面这些 HTML:

<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>

上面的例子创建了一个 DOMDocument-Object,并把 "note.xml" 中的 XML 载入这个文档对象中。

saveXML() 函数把内部 XML 文档放入一个字符串,这样我们就可以输出它。

循环 XML

我们要初始化 XML 解析器,加载 XML,并循环 <note> 元素的所有元素:

例子

<?php
$xmlDoc = new DOMDocument();
$xmlDoc->load("note.xml");

$x = $xmlDoc->documentElement;
foreach ($x->childNodes AS $item)
  {
  print $item->nodeName . " = " . $item->nodeValue . "<br />";
  }
?>

以上代码的输出:

#text = 
to = George
#text = 
from = John
#text = 
heading = Reminder
#text = 
body = Don't forget the meeting!
#text = 

在上面的例子中,您看到了每个元素之间存在空的文本节点。

当 XML 生成时,它通常会在节点之间包含空白。XML DOM 解析器把它们当作普通的元素,如果您不注意它们,有时会产生问题。

如果您希望学习更多有关 XML DOM 的知识,请访问我们的 XML DOM 教程