这个问题在这里已有答案:
哪两个更传播?我想从http://freshmeat.net/projects-xml/mysql/mysql.xml?branch_id=46519读出版本号,但我想使用更多人拥有的版本号。
如果您知道从mysql获取最新稳定版本号的另一种方法请告诉我;)
对于这种任务,将文档读入DomDocument
并使用DomXPath
可能更合适。
为了回答你的问题,这两个库(以及DomDocument
+ DomXPath
)都是PHP5的标准装备,所以它们也是同样好的选择。
它必须是SimpleXML。它is enabled by default,加载XML文档比Dom方法更快,内存占用比Dom方法更小,并且比Dom方法有更简单的xpath methods:
$xml = simplexml_load_file(
'http://freshmeat.net/projects-xml/mysql/mysql.xml?branch_id=46519'
);
$result = $xml->xpath('//latest_release/latest_release_version');
// or '//latest_release/*' if you'd rather loop through all release information.
while(list( , $node) = each($result))
echo $node, "\n";
对于大型文件使用XMLreader,simpleXML将占用大文件上的所有内存。
SimpleXML是在PHP5中引入的,而XmlReader仅在5.1版中默认包含,所以前者可能是最好的方法:
$struct = simplexml_load_string($xml);
$version = (string)$struct->project->latest_release->latest_release_version;
但是,如果您没有进行任何其他XML处理并希望最大限度地提高兼容性,那么您可以使用正则表达式:
if(preg_match('/<latest_release_version>(.*?)<\\/latest_release_version>/', $xml, $matches)){
$version = $matches[1];
}
它比正确处理XML更麻烦,但可能更快,并且几乎所有PHP安装都支持它。