七
5
2009
PHP用正则表达式解析 XML
作者: seasun<?php
$xml = “”;
$f = fopen( ‘books.xml’, ‘r’ );
while( $data = fread( $f, 4096 ) ) { $xml .= $data; }
fclose( $f );
preg_match_all( “/\<book\>(.*?)\<\/book\>/s”, $xml, $bookblocks );
foreach( $bookblocks[1] as $block ) {
preg_match_all( “/\<author\>(.*?)\<\/author\>/”, $block, $author );
preg_match_all( “/\<title\>(.*?)\<\/title\>/”, $block, $title );
preg_match_all( “/\<publisher\>(.*?)\<\/publisher\>/”, $block, $publisher );
echo( $title[1][0] . ” – ” . $author[1][0] . ” – ” . $publisher[1][0] . “\n” );
}
?>
正则表达式对于小量的XML数据解析比较高效,如果是大数据量的,那么就请使用 DOM 库读取 XML 或 SAX 解析器读取 XML 吧!!