用PHP读取和编写XML DOM(3)

2008-02-23 06:27:46来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折


  在脚本的顶部,用一些示例图书装入了 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 就是这样两个值得研究的工具。

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:php与XML、XSLT、Mysql的结合运用,代码篇

下一篇:更好的构造开发模板 五种PHP设计模式