PHP XML DOM

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

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

请看下面的 XML 文档片段:

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

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

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

安装

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


XML 文件

下面的 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

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

实例

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

print $xmlDoc->saveXML();
?>

以上代码将输出:

ToveJaniReminder Don‘t forget me this weekend!

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

<?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>

上面的实例创建了一个 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 = Tove
#text = 
from = Jani
#text = 
heading = Reminder
#text = 
body = Don‘t forget me this weekend!
#text =

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

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



如需学习更多关于 XML DOM 的知识,请访问我们的 XML DOM 教程

时间: 2024-11-03 00:17:25

PHP XML DOM的相关文章

Javascript 解析字符串生成 XML DOM 对象。

Javascript 接收字符串生成 XML DOM 对象.实测对 Firefox .IE6 有效.可用于解析 ajax 的服务器响应结果,也可用于解析自定义字符串.?1. [代码]函数   ppt模版  /** * Parses DOM from XML text.<br /> *  * @author Typhoon.Free.Wolf * @version 2014-02-28_15-51 * @param blDebugFlag *      - Debug flag: true, f

XML DOM

XML DOM可以类比于HTML DOM,详见:HTML DOM 1.DOM节点 整个文档是一个文档节点 每个XML元素是一个元素节点 包含在XML元素的文本是文本节点 每一个XML属性是一个属性节点 注释是注释节点 2.获取XML DOM对象 此处参考:Ajax 3.XML DOM属性 nodeName 节点名称 nodeValue 节点值 parentNode 父节点 childNodes 子节点 attributes 属性节点 4.XML DOM方法 getElementsByTagNam

xml.dom.minidom

import xml.dom.minidom document = """ <slideshow> <title>Demo slideshow</title> <slide><title>Slide title</title> <point>This is a demo</point> <point>Of a program for processing slides&

自学XML DOM的几个例子

XML DOM定义了如何获取.修改.添加和删除XML文件中结点的接口,极大方便了开发者对XML文件的使用.XML DOM教程和手册请转:http://www.w3school.com.cn/xmldom/dom_cdatasection.asp. 例子:利用XML DOM将XML中目标内容提取出来现在在html文件指定元素当中. ex1.html文件: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" &

python xml.dom模块解析xml

1. 什么是xml?有何特征? xml即可扩展标记语言,它可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言. 例子:del.xml <?xml version="1.0" encoding="utf-8"?> <catalog> <maxid>4</maxid> <login username="pytest" passwd='123456'> <ca

python中用xpath和xml.dom解析html

本次推荐的组合为xml.dom.minidom和xpath.其中xml.dom.minidom为python的标准库,无须安装.xpath为Google出品的开源项目py-dom-xpath. 安装py-dom-xpath: 从https://py-dom-xpath.googlecode.com/files/py-dom-xpath-0.1.tar.gz下载压缩包,解压. CD到py-dom-xpath-0.1目录 执行命令:C:\python27\python setup.py instal

XML DOM -属性和方法

XML DOM - 属性和方法 属性和方法向 XML DOM 定义了编程接口. 编程接口 DOM 把 XML 模拟为一系列节点对象.可通过 JavaScript 或其他编程语言来访问节点.在本教程中,我们使用 JavaScript. 对 DOM 的编程接口是通过一套标准的属性和方法来定义的. 属性经常按照"某事物是什么"的方式来使用(例如节点名是 "book"). 方法经常按照"对某事物做什么"的方式来使用(例如删除 "book&quo

xml.dom 二

原文地址:http://www.wklken.me/posts/2012/02/18/python-xml-dom.html PYTHON解析XML[XML.DOM] Python解析xml[xml.dom] 需求 解决 XML文件 处理脚本 涉及方法 用到的包:xml.dom.minidom 文档 代码托管位置 github-pytools 需求 有一个表,里面数据量比较大,每天一更新,其字段可以通过xml配置文件进行配置,即,可能每次建表的字段不一样. 上游跑时会根据配置从源文件中提取,到入

python 解析XML xml.dom

一 .xml.dom 解析XML的API描述 minidom.parse(filename) 加载读取XML文件 doc.documentElement 获取XML文档对象 node.getAttribute(AttributeName) 获取XML节点属性值 node.getElementsByTagName(TagName) 获取XML节点对象集合 node.childNodes 返回子节点列表. node.childNodes[index].nodeValue 获取XML节点值 node.