读 取 图 书
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-
>
item(0)-
>
nodeValue;
$publishers = $book- > getElementsByTagName( "publisher" );
$publisher = $publishers-
>
item(0)-
>
nodeValue;
$titles = $book-
>
getElementsByTagName( "title" );
$title = $titles-
>
item(0)-
>
nodeValue;
echo "$title - $author - $publisher
";
}
?> 脚本首先创建一个 new DOMdocument 对象,用 load 方法把图
书
XML 装入这个对象。之后,脚本用 getElementsByName 方法得到指定
名
称
下
的
所
有
元
素
的
列
表
。
在
book 节点的循环中,脚本用 getElementsByName 方法获得 autho
r、publisher 和 title 标记的 nodeValue。nodeValue 是节点中的文本。脚
本
然
后
显
示
这
些
值
。
可 以 在 命 令 行 上 像 这 样 运 行
PHP 脚 本 :
% php e1.php
PHP Hacks - Jack Herrington - O'Reilly
Podcasting Hacks - Jack Herrington - O'Reilly
%
可以看到,每个图书块输出一行。这是一个良好的开始。但是,如果不能
访
问
XML DOM 库
该
怎
么
办
?
用
SAX 解
析
器
读
取
XML
读取
XML 的另一种方法是使用 XML Simple API(SAX)解析器。PHP
的大多数安装都包含
SAX 解析器。SAX 解析器运行在回调模型上。每次打开
或关闭一个标记时,或者每次解析器看到文本时,就用节点或文本的信息回调
用
户
定
义
的
函
数
。