SimpleXML还是XMLReader? [重复]

问题描述 投票:3回答:4

这个问题在这里已有答案:

哪两个更传播?我想从http://freshmeat.net/projects-xml/mysql/mysql.xml?branch_id=46519读出版本号,但我想使用更多人拥有的版本号。

如果您知道从mysql获取最新稳定版本号的另一种方法请告诉我;)

php xml
4个回答
6
投票

对于这种任务,将文档读入DomDocument并使用DomXPath可能更合适。

为了回答你的问题,这两个库(以及DomDocument + DomXPath)都是PHP5的标准装备,所以它们也是同样好的选择。


3
投票

它必须是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";

1
投票

对于大型文件使用XMLreader,simpleXML将占用大文件上的所有内存。


0
投票

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安装都支持它。

© www.soinside.com 2019 - 2024. All rights reserved.