Eğer PHP için ne XML ayrıştırıcı kullanıyorsunuz?

5 Cevap php

Ben bu kadar basitlik ve hız için XMLReader sınıf gibi. Daha iyi hata kurtarma sağlar Ama ben xml_parse ilişkili fonksiyonları gibi. XMLReader sınıfı yerine sadece bir uyarı issuinng geçersiz varlık Hakemle gibi şeyler için istisnalar atmak olsaydı güzel olurdu.

5 Cevap

Eğer ben SimpleXML önlemek istiyorum. O "çirkin" bir sürü kod önlemek için alarak çok cazip görünüyor olsa da, adından da anlaşılacağı sadece ne: basit. Örneğin, bu idare edemez:

<p>
    Here is <strong>a very simple</strong> XML document.
</p>

Kabullenmesini ve DOM Fonksiyonları gidin. Uzakta biraz ekstra karmaşıklığı daha ağır basar o gücü. Eğer JavaScript DOM manipülasyon ile tüm tanıdık iseniz, bu kütüphane ile evinizde hissedeceksiniz.

SimpleXML Benim için iyi bir iş yapmak gibi görünüyor.

SimpleXML ve DOM birlikte sorunsuz çalışacak, böylece SimpleXML veya DOM gibi onunla etkileşim aynı XML kullanabilirsiniz.

Örneğin:

$simplexml = simplexml_load_string("<xml></xml>");
$simplexml->simple = "it is simple.";

$domxml = dom_import_simplexml($simplexml);
$node = $domxml->ownerDocument->createElement("dom", "yes, with DOM too.");
$domxml->ownerDocument->firstChild->appendChild($node);

echo (string)$simplexml->dom;

Sen sonuç alırsınız:

"yes, with DOM too."

Eğer nesne (ya SimpleXML veya dom içine) içe zaman referans ile aynı altını çiziyor PHP nesnesini kullanır çünkü.

Ben nesneyi kaplamak / uzatarak SimpleXMLElement bazı hataların düzeltilmesi için çalışıyordu ben bunu anladım.

http://code.google.com/p/blibrary/source/browse/trunk/classes/bXml.class.inc örnekleri için bkz.

DOM / SimpleXML (x2 veya x3 düşünüyorum) bazı ek yükü ile belleğe tam belgeyi çekme gibi bu, XML (-2MB) küçük parçalar için gerçekten çok iyi. Büyük bir XML boyutta (+2 MB) için düşük bellek yüküyle, SAX stil ayrıştırmak XMLReader / yazar XMLWriter kullanmak isteyeceksiniz. Ben XMLReader / XMLWriter başarıyla 14MB + belgeleri kullandım.

XML dosyalarını ayrıştırmak için PHP5 kullanırken en az dört seçeneği vardır. En iyi seçenek, XML dosyasının karmaşıklığı ve büyüklüğüne bağlıdır.

IBM developerWorks de 'XML for PHP developers' başlıklı bir çok iyi 3 bölümlük yazı dizisi var.

"W3C standardı ile artık tam uyumlu DOM ile Ayrıştırma, tanıdık bir seçenek olduğunu ve karmaşık ama nispeten küçük belgeler için bir seçimdir. SimpleXML temel ve-çok-büyük olmayan XML belgeleri için gitmek yoludur ve XMLReader, kolay ve SAX daha hızlı, büyük belgeler için tercih akışı ayrıştırıcı. "

PHP5 benim için geçerli olan en az zaman ben çoğunlukla SimpleXML sopa.

http://www.php.net/simplexml