Chinaunix首页 | 论坛 | 博客
  • 博客访问: 19002037
  • 博文数量: 7460
  • 博客积分: 10434
  • 博客等级: 上将
  • 技术积分: 78178
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-02 22:54
文章分类

全部博文(7460)

文章存档

2011年(1)

2009年(669)

2008年(6790)

分类:

2008-05-27 22:03:33

本文节选于《Programming PHP》第二版(中译名《PHP程序设计》第二版,Haohappy等译,电子工业出版社出版)

11.5  使用SimpleXML解析XML

Parsing XML with SimpleXML

如果你想处理非常简单的XML文档,你可以考虑使用PHP提供的第三个XML类库——SimpleXML。SimpleXML无法像DOM扩展那样生成XML文档,也不像Expat扩展那样灵活可扩展且高效,但是用它来解析和使用XML是非常容易的。

SimpleXML可以读一个XML文件,或字符串,或DOM文档(由 DOM扩展生成),然后生成一个对象。该对象的属性提供每个节点的元素的访问途径。使用这些属性,你可以使用数字指数,或非数字指数来访问属性。最后,你 可以对任何你从某一项中获取的文本值进行字符串转换。

例如,我们要显示BookList.xml文档中所有书籍的标题:

$document= simplexml_load_file('bookparse.xml');

foreach ($document->library->book as $book) {

  echo $book->title;

}

使用对象中的children()方法,你可以遍历某个给定节点的子节点;同样地,你可以用attributes()方法来遍历某个给定节点的属性:

$document= simplexml_load_file('bookparse.xml');

foreach ($document->library->children(  ) as $node) {

  foreach ($node->attributes(  ) as $attribute) {

    echo "$attribute\n";

  }

}

最后,使用asXML()方法,你可以得到XML格式的文档。这样你就可以改变原来的文档中的值,然后很方便地写回硬盘,保存为另一个XML文档。

$document= simplexml_load_file('bookparse.xml');

foreach ($document->library->book as $book) {

  $book->title = 'New Title';

}

file_put_contents('bookparse.xml', $document->asXML(  ));

阅读(672) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~