用PHP读取和编写XML DOM

兮_若123

兮_若123

2016-01-29 13:45

用PHP读取和编写XML DOM,用PHP读取和编写XML DOM

用 PHP 读取和编写可扩展标记语言(XML)看起来可能有点恐怖。实际上,XML 和它的所有相关技术可能是恐怖的,但是用 PHP 读取和编写 XML 不一定是项恐怖的任务。首先,需要学习一点关于 XML 的知识 它是什么,用它做什么。然后,需要学习如何用 PHP 读取和编写 XML,而有许多种方式可以做这件事。

  本文提供了 XML 的简短入门,然后解释如何用 PHP 读取和编写 XML。

  什么是 XML?

  XML 是一种数据存储格式。它没有定义保存什么数据,也没有定义数据的格式。XML 只是定义了标记和这些标记的属性。格式良好的 XML 标记看起来像这样:

<name>Jack Herrington</name>

  这个 <name> 标记包含一些文本:Jack Herrington。

  不包含文本的 XML 标记看起来像这样:

<powerUp />

  用 XML 对某件事进行编写的方式不止一种。例如,这个标记形成的输出与前一个标记相同:

<powerUp></powerUp>

  也可以向 XML 标记添加属性。例如,这个 <name> 标记包含 first 和 last 属性:

<name first="Jack" last="Herrington" />

  也可以用 XML 对特殊字符进行编码。例如,& 符号可以像这样编码:

  &

  包含标记和属性的 XML 文件如果像示例一样格式化,就是格式良好的,这意味着标记是对称的,字符的编码正确。清单 1 且环莞袷搅己玫?XML 的示例。

  清单 1. XML 图书列表示例

   <books>   <book>   <author>Jack Herrington</author>   <title>PHP Hacks</title>   <publisher>O'Reilly</publisher>   </book>   <book>   <author>Jack Herrington</author>   <title>Podcasting Hacks</title>   <publisher>O'Reilly</publisher>   </book>   </books> 

  清单 1 中的 XML 包含一个图书列表。父标记 <books> 包含一组 <book> 标记,每个 <book> 标记又包含 <author>、<title> 和 <publisher> 标记。

  当 XML 文档的标记结构和内容得到外部模式文件的验证后,XML 文档就是正确的。模式文件可以用不同的格式指定。对于本文来说,所需要的只是格式良好的 XML。

  如果觉得 XML 看起来很像超文本标记语言(HTML),那么就对了。XML 和 HTML 都是基于标记的语言,它们有许多相似之处。但是,要着重指出的是:虽然 XML 文档可能是格式良好的 HTML,但不是所有的 HTML 文档都是格式良好的 XML。换行标记(br)是 XML 和 HTML 之间区别的一个好例子。这个换行标记是格式良好的 HTML,但不是格式良好的 XML:

<p>This is a paragraph<br>
With a line break</p>

  这个换行标记是格式良好的 XML 和 HTML:

<p>This is a paragraph<br />
With a line break</p>

  如果要把 HTML 编写成同样是格式良好的 XML,请遵循 W3C 委员会的可扩展超文本标记语言(XHTML)标准(参见 参考资料)。所有现代的浏览器都能呈现 XHTML。而且,还可以用 XML 工具读取 XHTML 并找出文档中的数据,这比解析 HTML 容易得多。

  使用 DOM 库读取 XML

  读取格式良好的 XML 文件最容易的方式是使用编译成某些 PHP 安装的文档对象模型 (DOM)库。DOM 库把整个 XML 文档读入内存,并用节点树表示它,如图 1 所示。

  图 1. 图书 XML 的 XML DOM 树
图书 XML 的 XML DOM 树

  树顶部的 books 节点有两个 book 子标记。在每本书中,有 author、publisher 和 title 几个节点。author、publisher 和 title 节点分别有包含文本的文本子节点。

  读取图书 XML 文件并用 DOM 显示内容的代码如清单 2 所示。

  清单 2. 用 DOM 读取图书 XML

   <?PHP   $doc = new DOMDocument();   $doc->load( 'books.XML' );      $books = $doc->getElementsByTagName( "book" );   foreach( $books as $book )   {   $authors = $book->getElementsByTagName( "author" );   $author = $authors-      
展开更多 50%)
分享

猜你喜欢

用PHP读取和编写XML DOM

PHP
用PHP读取和编写XML DOM

用MySQL和PHP创建XML

PHP
用MySQL和PHP创建XML

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

XML DOM介绍和例子(二)

ASP
XML DOM介绍和例子(二)

XML DOM介绍和例子(三)

ASP
XML DOM介绍和例子(三)

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

XML DOM介绍和例子(一)

ASP
XML DOM介绍和例子(一)

用PHP读取IMAP邮件

PHP
用PHP读取IMAP邮件

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

Flash 神奇遮罩之应用篇(1)

Flash 神奇遮罩之应用篇(1)

Flash 神奇遮罩教程之以假乱真篇

Flash 神奇遮罩教程之以假乱真篇
下拉加载更多内容 ↓