PHP ile DOM Manipülasyon

3 Cevap php

PHP ile DOM Elementlerin basit ama olmayan önemsiz manipülasyon yapmak istiyorum ama ben kayboldum.

Paragraflar ve başlıklar var Wikipedia gibi bir sayfa varsayalım (<p>, <h2>). Onlar kardeşiz. Ben sırayla, hem elemanları almak istiyorum.

I have tried GetElementbyName but then you have no possibility to organize information. I have tried DOMXPath->query() but I found it really confusing.

Sadece ayrıştırma gibi bir şey:

<html>
  <head></head>
  <body>
    <h2>Title1</h2>
    <p>Paragraph1</p>
    <p>Paragraph2</p>
    <h2>Title2</h2>
    <p>Paragraph3</p>
  </body>
</html>

içine:

Title1
Paragraph1
Paragraph2
Title2
Paragraph3

HTML kodu bir kaç bit ile tüm arasında ihtiyacım yok.

Teşekkür ederim. Ben soru ödev gibi görünmüyor umuyoruz.

3 Cevap

I DOMXPath->query() doğru bir yaklaşım olduğunu düşünüyorum. (Eğer onlar kardeş olduğunu söyledi çünkü) bu XPath ifadesi ya bir <h2> veya <p> aynı seviyede olan tüm düğümleri dönecektir.

/html/body/*[name() = 'p' or name() = 'h2']

Düğümler doğru sırayla (belge düzeni) bir node list olarak iade edilecektir. Daha sonra sonuç üzerinde bir foreach döngüsü oluşturabilirsiniz.

Ben SCChen tarafından bir kaç kez basit bir html dom uased var.

Erişim dom elemanları için mükemmel bir sınıf.

Örnek:

// Create DOM from URL or file
$html = file_get_html('http://www.google.com/');

// Find all images
foreach($html->find('img') as $element)
       echo $element->src . '<br>';

// Find all links
foreach($html->find('a') as $element)
       echo $element->href . '<br>';

Burada göz atın. simplehtmldom

Gelecekteki projeleri ile yardımcı olabilir

Bu kütüphanede bakmak zorunda ve proje tekabül deneyin:

Simple HTML DOM

Bu dosya sistemi online bir web sayfası ya da bir html sayfası açmak ve sınıf isimleri, etiket adları ve kimlikleri üzerinden kendi öğeleri erişim sağlar. Eğer jQuery ve kendi sözdizimi ile aşina iseniz bu kütüphaneye alışmak hiçbir zaman ihtiyacımız var.