开发学院WEB开发PHP 面向PHP开发人员的XML 第2部分: 高级XML解析技术 阅读

面向PHP开发人员的XML 第2部分: 高级XML解析技术

 2008-11-19 22:24:53 来源:WEB开发网   
核心提示: 最后一个例子(参见清单 9)结合使用了 Simplexml(标准化越来越近了) 以及 DOM 和 xml(标准化越来越近了)Reader,通过 xml(标准化越来越近了)Reader,面向PHP开发人员的XML 第2部分: 高级XML解析技术(7),每次使用 expand() 传递一个元素的数据,这样就能将 xml(

最后一个例子(参见清单 9)结合使用了 Simplexml(标准化越来越近了) 以及 DOM 和 xml(标准化越来越近了)Reader。通过 xml(标准化越来越近了)Reader,每次使用 expand() 传递一个元素的数据。这样就能将 xml(标准化越来越近了)Reader 传递的节点转换成 DOMElement 再传递给 Simplexml(标准化越来越近了) 了。

清单 9. 结合 Simplexml(标准化越来越近了) 以及 DOM 和 xml(标准化越来越近了)Reader 解析大型 xml(标准化越来越近了) 文档

<?php
// Parsing a large document with Expand and Simplexml(标准化越来越近了)
$reader = new xml(标准化越来越近了)Reader();
$reader->open("tooBig.xml(标准化越来越近了)");
while ($reader->read()) {
switch ($reader->nodeType) {
case (xml(标准化越来越近了)READER::ELEMENT):
if ($reader->localName == "entry") {
if ($reader->getAttribute("ID") == 5225) {
$node = $reader->expand();
$dom = new DomDocument();
$n = $dom->importNode($node,true);
$dom->appendChild($n);
$sxe = simplexml(标准化越来越近了)_import_dom($n);
echo $sxe->title;
}
}
}
}
?>

基于流的解析器

之所以称为基于流的解析器,是因为它们采用和流式音频同样的原理来解析 xml(标准化越来越近了) 流,处理一个特殊节点,完成之后则将其完全忘掉。xml(标准化越来越近了)Reader 是一种 pull 解析器,其编码方法和数据库查询结果表的游标中非常类似。因此更容易处理不熟悉的或者不可预测的 xml(标准化越来越近了) 文件。

使用 xml(标准化越来越近了)Reader 解析

xml(标准化越来越近了)Reader 扩展是一种基于流的解析器,其类型通常被称为游标类型或者 pull 类型解析器。xml(标准化越来越近了)Reader 根据请求从 xml(标准化越来越近了) 文档中获取信息。它是基于派生自 C# xml(标准化越来越近了)TextReader 的 API。PHP 5.1 默认包含并启用它,基于 libxml(标准化越来越近了)2。在 PHP 5.1 之前,默认不启用 xml(标准化越来越近了)Reader 扩展,但是可从 PECL(请参阅 参考资料 中的相关链接)下载。xml(标准化越来越近了)Reader 支持名称空间和验证,包括 DTD 和 Relaxed NG。

上一页  2 3 4 5 6 7 8 9  下一页

Tags:面向 PHP 开发

编辑录入:coldstar [复制链接] [打 印]
[]
  • 好
  • 好的评价 如果觉得好,就请您
      0%(0)
  • 差
  • 差的评价 如果觉得差,就请您
      0%(0)
赞助商链接