分类:
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( ));