SimpleXML veya XMLReader?

4 Cevap php

Bu soru burada zaten bir cevabı var:

4 Cevap

Bu SimpleXML olmak zorundadır. Bu is enabled by default, Dom yöntemlerden daha XML belgeleri yüklemek için hızlıdır Dom yöntemlere göre daha küçük bir bellek ayak izi vardır ve Dom yöntemlerden daha xpath methods daha basit vardır:

$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";

SimpleXML XmlReader sadece sürüm 5.1 varsayılan olarak dahil iken PHP5 tanıtılan, yani eski muhtemelen gitmek için en iyi yoldur edildi:

$struct = simplexml_load_string($xml);
$version = (string)$struct->project->latest_release->latest_release_version;

Eğer diğer XML işleme yapıyor ve uyumluluğu en üst düzeye çıkarmak istiyorsanız değilseniz Ancak sadece XML regex olabilir:

if(preg_match('/<latest_release_version>(.*)<\/latest_release_version>/', $xml, $matches)){
$version = $matches[1];
}

Bu şekilde XML işleme daha dağınık ama muhtemelen daha hızlı ve neredeyse tüm PHP kurulumları tarafından desteklenir.

Büyük dosyaları XMLReader kullanmak için, SimpleXML büyük dosyalar üzerinde bütün bellek tüketir.