SORU
26 AĞUSTOS 2010, PERŞEMBE


Nasıl PHP ve HTML/XML ayrıştırma işlemi musunuz?

Nasıl bir ayrıştırma/XML HTML ve bilgi elde edebilir mi?

Bu Etiket General Reference bir soru

CEVAP
26 AĞUSTOS 2010, PERŞEMBE


Yerel XML Uzantıları

PHP ile birlikte gelen bu yana native XML extensions birini kullanmayı tercih ediyoruz, genelde tüm 3. parti libs daha hızlı ve biçimlendirme üzerinde ihtiyacım olan denetim verin.

DOM

DOM uzantısı PHP 5 ile DOM API aracılığıyla XML belgeleri üzerinde çalışmasına olanak sağlar. Bir uygulama W3C Belge Nesne Modeli Temel Düzey 3, bir platform ve dil bağımsız arayüz sağlayan program ve komut dosyaları için dinamik olarak erişim ve güncelleme içeriği, yapısı ve Tarzı Belgeler.

DOM ve (kırık) gerçek dünya HTML ayrıştırma değiştirme yeteneğine sahiptir ve XPath queries. libxml dayanmaktadır.

Biraz zaman DOM ile verimli sürer, ama bu sefer değdi IMO. Beri DOM bir dil-agnostik arayüzü bulacaksınız uygulamalarında farklı diller, gerekirse değiştirin programlama dili, şansın olacak zaten nasıl kullanacağını biliyor musun dilin DOM API.

Temel kullanım bir örnek Grabbing the href attribute of an A element bulunabilir ve genel kavramsal bakış DOMDocument in php bulunabilir

How to use the DOM extension has been covered extensively on StackOverflow, Eğer kullanmak isterseniz, karşılaştığınız sorunları en arama/Yığın Taşması göz atarak çözülebilir emin olabilirsiniz.

XMLReader

XMLReader uzantısı XML çekme ayrıştırıcı. Okuyucu bir imleç olarak ileri belge akışı oluyor ve yolda her düğüm durdurma eylemleri.

XMLReader, DOM gibi, libxml dayanmaktadır. Ben değilim farkında nasıl tetik HTML Ayrıştırıcı Modülü, bu yüzden şansı kullanarak XMLReader için ayrıştırma HTML kırık olabilir olmak daha güçlü daha kullanarak DOM nereye sen-ebilmek açıkça söyle bunu kullanmak libxml HTML Ayrıştırıcı Modülü.

Temel kullanım bir örnek getting all values from h1 tags using php bulunabilir

XML Parser

Bu uzantı XML ayrıştırıcıları oluşturmak ve daha sonra farklı etkinlikler için XML işleyicileri tanımlar. Her XML ayrıştırıcı aynı zamanda ayarlayabilirsiniz birkaç parametre vardır.

XML Ayrıştırıcı kütüphane de libxml dayanır ve çözümleyici SAX XML tarzı bir itme uygular. DOM veya SimpleXML daha bellek yönetimi için daha iyi bir seçim olabilir, ancak çekme ayrıştırıcı XMLReader tarafından uygulanan daha çalışmak için daha zor olacaktır.

SimpleXml

SimpleXML uzantısı normal özellik seçiciler ve dizi kullanımına işlenebilir bir nesne için XML dönüştürmek için çok basit ve kolay kullanılabilir bir araç sağlar.

SimpleXML HTML geçerli XHTML bildiğin zaman bir seçenektir. Eğer kırık HTML ayrıştırmak için gerekiyorsa, hatta şok olacak, çünkü SimpleXml düşünmüyoruz.

Temel kullanım bir örnek A simple program to CRUD node and node values of xml file ve lots of additional examples in the PHP Manual var.


3. Parti Kütüphaneler (libxml göre)

Eğer 3. parti bir lib kullanmak isterseniz, aslında altında*/libxml *16 kullanan bir lib kullanarak dize ayrıştırma yerine öneririm.

phpQuery

phpQuery sunucu tarafında, chainable, CSS3 seçici tahrik (DOM) Belge Nesne Modeli API jQuery JavaScript Kütüphanesi PHP5 yazılmış dayanmaktadır ve sağlar ek Komut Satırı Arayüzü (CLİ).

Zend_Dom

Zend_Dom DOM belgeler ve yapıları ile çalışmak için araçlar sağlar. Şu anda, DOM belgeler XPath ve CSS seçiciler de kullanarak sorgulamak için birleşik bir arayüz sağlayan Zend_Dom_Query, sunuyoruz.

QueryPath

QueryPath XML ve HTML işlemek için bir PHP Kütüphanesi. Sadece web hizmetleri ve veritabanı kaynakları ile yerel dosyaları ile birlikte, ama aynı zamanda çalışmak için tasarlanmıştır. JQuery arayüzü çok uygular (tarzı CSS seçiciler dahil), ama ağır sunucu tarafı kullanım için ayarlanmıştır. Yüklenebilir Besteci).

FluentDom

FluentDOM PHP DOMDocument için bir WordPress kullanmak-XML gibi akıcı bir arayüz sağlar. XPath seçiciler ya da CSS (dönüştürücü XPath için bir CSS kullanarak) ile yazılır. Geçerli sürüm DOM standart arabirimleri uygulama genişletmek ve DOM Yaşayan Standart özellikler eklemek. FluentDOM JSON, CSV, JsonML, Sırt ve diğerleri gibi formatları yükleyebilirsiniz. Yüklenebilir Besteci).

fDOMDocument

fDOMDocument hataları yerine PHP bir uyarı veya bildirimler her zaman istisnalar kullanmak için standart DOM uzanır. Onlar da kolaylık sağlamak için çeşitli özel yöntemler ve kısayollar ve DOM kullanımını kolaylaştırmak için ekleyin.


3-Parti (libxml tabanlı değil)

DOM/libxml üzerine inşa yararı doğal bir uzantısı dayalı çünkü kutunun dışında iyi bir performans elde edilmesi. Ancak, 3. şahıs değil tüm libs bu rota aşağı gitmek. Bunlardan bazıları aşağıda listelenmiştir

SimpleHtmlDom

  • HTML DOM parser PHP5 ile yazılmış çok kolay bir şekilde HTML manipüle sağlar!
  • PHP 5 gerektirir .
  • Geçersiz HTML destekler.
  • Sadece jQuery gibi seçiciler ile HTML sayfasındaki etiketleri bulun.
  • Tek satır HTML içeriğini ayıklamak.

Ben genellikle bu ayrıştırıcı önermiyoruz. Kod temeli korkunç ve oldukça yavaş ve bellek aç kendisi çözümleyici. Libxml göre kitaplık birini bu kadar kolay geride bırakabilir.

Ganon

  • Evrensel tokenizer ve bir HTML/XML/RSS DOM Parser
    • Yetenek öğeleri ve öznitelikleri değiştirmek için
    • Geçersiz HTML destekler ve UTF8
  • Gerçekleştirebilir CSS3 gibi unsurları sorgulamaları gelişmiş (jQuery -- ad desteklenen gibi)
  • HTML bir güzellik (HTML gibi)Düzenli
    • Minify CSS ve Javascript
    • Sıralama, büyük / küçük harf doğru girinti, vb değiştirmek bağlıyor.
  • Genişletilebilir
    • Ayrıştırma belgeleri geri geçerli karakter/simge esasına dayalı
    • İşlemleri kolay küçük fonksiyonları ayrılmış geçersiz kılma
  • Hızlı ve Kolay

Hiç kullanmadım. Eğer herhangi bir iyi. bu ben miyim???


HTML 5

HTML5, ama there can be quirks biçimlendirme nedeniyle HTML5 sağlar ayrıştırma için yukarıda kullanabilirsiniz. HTML5 için özel bir çözümleyici kullanarak, gibi düşünebilirsiniz

html5lib

HTML parser Python ve PHP uygulamaları büyük masaüstü web tarayıcıları ile maksimum uyumluluk için WHATWG HTML5 özelliklerine dayalıdır.

HTML5 tamamlandıktan sonra daha özel ayrıştırıcıları görebiliriz. Ayrıca incelenmeye değer olduğunu U3 - How-To for html 5 parsing başlıklı bir vitamin var.


Web Hizmetleri

Eğer programlama PHP gibi hissetmiyorum bile, ayrıca web servislerini kullanabilirsiniz. Genel olarak, bu çok küçük bir yardımcı buldum, ama bu sadece ve kullanımı davalarımı bana.

YQL

YQL Web Servis uygulamaları sorgu, filtreleme, ve İnternet üzerinden farklı kaynaklardan gelen verileri birleştirmek sağlar. YQL deyimleri SQL benzeri sözdizimi, veritabanı deneyimi ile herhangi bir geliştirici için tanıdık.

ScraperWiki.

ScraperWiki dış arabirim kendi uygulamaları web üzerinde kullanım için veya istediğiniz formda veri ayıklamak için izin verir. Ayrıca herhangi bir kazıyıcı durumu hakkında bilgi elde edebilirsiniz.


Düzenli İfadeler

Ve son olarakaz tavsiye, regular expressions ile HTML veri ayıklamak. Genel olarak HTML Düzenli İfadeler kullanarak önerilmez.

Web üzerinde işaretleme maç bulacaksınız parçacıkları en kırılgan. Çoğu durumda, yalnızca HTML çok özel bir parça için çalışıyoruz. Küçük biçimlendirme değişiklikleri, bir yerde boşluk ekleyerek, ya da bir etiket öznitelikleri ekleme, değiştirme gibi normal ifade, düzgün yazılmış değil başarısız yapabilir. Ne yaptığınızı HTML düzenli kullanmadan önce bilmeniz gerekir.

HTML ayrıştırıcıları zaten HTML sözdizimsel kuralları biliyorsunuz. Düzenli ifadeler yazmak her yeni bir düzenli ifade için öğretilmelidir. Düzenli bazı durumlarda iyi, ama gerçekten kullanımı durumda bağlıdır.

31 ** ama bir yazıtam ve güvenilirdüzenli ifadeler ile özel bir çözümleyici söz konusu kütüphaneler var ve bu çok daha iyi bir iş yapmak zaman kaybıdır.

Ayrıca bakınız Parsing Html The Cthulhu Way


Kitaplar

Eğer biraz para harcamak istiyorsanız, bir göz at

PHP Mimar veya yazarlar ile bağlı değilim.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • 0TACTICAL0HIPPY0

    0TACTICAL0HI

    30 EYLÜL 2012
  • KarnasCamillo

    KarnasCamill

    24 EKİM 2007
  • Mr_BrettHooge

    Mr_BrettHoog

    3 Ocak 2011