SORU
25 HAZİRAN 2009, PERŞEMBE


Destek ve XML (c )

Herhangi bir iyi ve basit bir şekilde de destek ve xml dosyalarını okumak ve yazmak için kullanan var mı?

Xml dosyalarını boost kullanarak okumak için basit bir örnek bulmak için görünmüyor olabilir mi? (basit bir örnek kullanın okuma ve xml dosyaları yazmak için bana destek noktası olabilir)

Destek, tavsiye edebileceğiniz iyi ve basit herhangi bir kütüphane ve xml dosyalarını okumak ve yazmak için mi? (c kütüphanesi olmalıdır)

Teşekkürler Nuno

CEVAP
19 EYLÜL 2009, CUMARTESİ


pugixml denemelisinHafif, C için basit ve hızlı XML ayrıştırıcı

Pugixml hakkında en güzel şey buXPathTinyXML ve RapidXML eksikliği olan destek.

Alıntı RapidXML yazarı "teşekkür etmek istiyorum Arseny Kapoulkine üzerine çalışmaları için pugixml, olan oldu bir ilham için bu proje" ve "5% - 30% daha hızlı pugixml, en hızlı XML ayrıştırıcı biliyorum" vardı test karşı sürüm 0.3 pugixml, hangi ulaştı son sürüm 0.42.

Burada pugixml belgeleri: bir alıntı

Ana özellikleri şunlardır:

  • bellek tüketimi ve parçalanma düşük (pugxml üzerinden kazanç ~1.3 kat, TinyXML - ~2.5 kat, Xerces (DOM) - ~4.3 Kat 1). Tam sayılar mevcut ayrıştırıcıları ile Karşılaştırıldığında bölümünde görülebilir.
  • son derece yüksek hız (pugxml üzerinden kazanç ~6 kez, - ~10 kat, Xerces-DOM - ~ile 17,6 Kat 1 TinyXML . ayrıştırma
  • son derece yüksek ayrıştırma hızı (kendimi tekrar ediyorum, ama test XML 2.8 kat Göçmeni geride bırakıyor o kadar hızlı, o) 2
  • daha fazla veya daha az standart-uyumlu (standart-uyumlu herhangi bir dosya doğru, DTD ile ilgili konular dışında ayrıştıracak)
  • çok fazla hata-cahil (yabancı; yanlış kodlama veri ve dosyaları ayrıştıracak gibi Sen Ve ben gibi bir şey, boğ değil)
  • arayüz (ağır refactored bir pugxml bir) temizleyin
  • daha fazla veya daha az Unicode uyumlu (aslında varsayar UTF-8 kodlama veri girişi olsa da olur kolayca iş ile ANSI - UTF-16 için (bkz: Gelecekteki çalışma) ile yardımcı dönüştürme fonksiyonları (UTF-8 <->UTF-16/32 std için varsayılan her neyse (:: & wchar_t wstring))
  • tamamen standart uyumlu C kodu (Comeau katı mod tarafından onaylanmış); kütüphane çoklu (platformlar listesi için referans bakınız)
  • yüksek esneklik. Dosya ayrıştırma birçok açıdan kontrol ve ayrıştırma seçenekleri ile ağaç bina DOM.

Peki, karşılığında ne istiyorsun? diye sorabilirsiniz Her şey çok şirin - XML ayrıştırma için küçük, hızlı, sağlam, temiz çözümdür. Ne eksik? Tamam, burada misfeature bir listesi adil geliştiriciler -:

  • bellek tüketimi. Bildiğim kadarıyla DOM tabanlı her çözümleyici iyidir - ama SAX parser gelince, şans diye bir şey yok. 2 Gb bir XML bellek en az 4 Gb ile dosya - ve hızlı işlem yapabilirsiniz. Pugixml daha iyi davranır rağmen, diğer tüm tabanlı daha DOM parser, DOM ile sıkışmış iseniz, bu bir sorun değil.
  • bellek tüketimi. Tamam, kendimi tekrarlayıp duruyorum. Yine. Diğer ayrıştırıcıları sen sürekli depolama (ya da en azından bellek eşlenen bir alan) XML dosyası sağlamak için izin verecek, pugixml. Tüm verileri kopyalamak için sabit olmayan bir depoya sahip olacaksınız. Ayrıca, ayrıştırıcı ömür boyu (bunun nedenlerini ve yaşam hakkında daha fazla aşağıda yazılı) sırasında kalıcı olmalıdır. Tekrar, eğer sen Tamam DOM - olmaması gerekir, bir sorun nedeniyle toplam bellek tüketimi daha az (iyi, ama ihtiyacınız olacak bitişik yığın bellek, bir sorun).
  • doğrulama eksikliği, DTD işleme, XML ad alanları, kodlama, uygun işleme. Eğer bu gerekiyorsa böyle MSXML veya XercesC falan al.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Māris Zaharovs

    Māris Zahar

    28 Mayıs 2008
  • MrSuicideSheep

    MrSuicideShe

    9 NİSAN 2010
  • Rugiagialia

    Rugiagialia

    1 Ocak 2008