用PHP编写XML
如果 DOM 不可用,可以用 PHP 的文本模板编写 XML。清单 7 显示了 PHP 如何构建图书 XML 文件。
清单7. 用PHP编写图书XML
- <?php
- $books = array();
- $books [] = array(
- 'title' => 'php100.com',
- 'author' => 'lphp100.com',
- 'publisher' => "O'Reilly"
- );
- $books [] = array(
- 'title' => 'Podcasting php100',
- 'author' => 'memory',
- '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 就是这样两个值得研究的工具。
(责任编辑:admin) |