手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>网络编程>Php编程>列表

用PHP读取和编写XML DOM

来源:互联网 作者:west263.com 时间:2008-02-23
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

  在脚本的顶部,用一些示例图书装入了 books 数组。这个数据可以来自用户也可以来自数据库。

  示例图书装入之后,脚本创建一个 new DOMDocument,并把根节点 books 添加到它。然后脚本为每本书的 author、title 和 publisher 创建节点,并为每个节点添加文本节点。每个 book 节点的最后一步是重新把它添加到根节点 books。

  脚本的末尾用 saveXML 方法把 XML 输出到控制台。(也可以用 save 方法创建一个 XML 文件。)脚本的输出如清单 6 所示。

清单 6. DOM 构建脚本的输出
 

  % php e4.php  

  <?xml version="1.0"?> 

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

  % 


  使用 DOM 的真正价值在于它创建的 XML 总是格式正确的。但是如果不能用 DOM 创建 XML 时该怎么办?

  用 PHP 编写 XML

  如果 DOM 不可用,可以用 PHP 的文本模板编写 XML。清单 7 显示了 PHP 如何构建图书 XML 文件。

清单 7. 用 PHP 编写图书 XML
 

  <?php 

  $books = array(); 

  $books [] = array( 

  'title' => 'PHP Hacks', 

  'author' => 'Jack Herrington', 

  'publisher' => "O'Reilly" 

  ); 

  $books [] = array( 

  'title' => 'Podcasting Hacks', 

  'author' => 'Jack Herrington', 

  'publisher' => "O'Reilly" 

  ); 

  ?> 

  <books> 

  <?php 

   

  foreach( $books as $book ) 

  { 

  ?> 

  <book> 

  <title><?php echo( $book['title'] ); ?></title> 

  <author><?php echo( $book['author'] ); ?> 

  </author> 

  <publisher><?php echo( $book['publisher'] ); ?> 

  </publisher> 

  </book> 

  <?php 

  } 

  ?> 

  </books> 


  脚本的顶部与 DOM 脚本类似。脚本的底部打开 books 标记,然后在每个图书中迭代,创建 book 标记和所有的内部 title、author 和 publisher 标记。

  这种方法的问题是对实体进行编码。为了确保实体编码正确,必须在每个项目上调用 htmlentities 函数,如清单 8 所示。

清单 8. 使用 htmlentities 函数对实体编码
  

  <books> 

  <?php 

   

  foreach( $books as $book ) 

  { 

  $title = htmlentities( $book['title'], ENT_QUOTES ); 

  $author = htmlentities( $book['author'], ENT_QUOTES ); 

  $publisher = htmlentities( $book['publisher'], ENT_QUOTES ); 

  ?> 

  <book> 

  <title><?php echo( $title ); ?></title> 

  <author><?php echo( $author ); ?> </author> 

  <publisher><?php echo( $publisher ); ?> 

  </publisher> 

  </book> 

  <?php 

  } 

  ?> 

  </books> 


  这就是用基本的 PHP 编写 XML 的烦人之处。您以为自己创建了完美的 XML,但是在试图使用数据的时候,马上就会发现某些元素的编码不正确。

  结束语

  XML 周围总有许多夸大之处和混淆之处。但是,并不像您想像的那么难 —— 特别是在 PHP 这样优秀的语言中。在理解并正确地实现了 XML 之后,就会发现有许多强大的工具可以使用。XPath 和 XSLT 就是这样两个值得研究的工具。

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!