Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah cara saya mengekstrak teks khusus daripada HTML menggunakan DOMDocument dan XPath PHP?

Bagaimanakah cara saya mengekstrak teks khusus daripada HTML menggunakan DOMDocument dan XPath PHP?

DDD
DDDasal
2024-11-01 13:00:03376semak imbas

How do I extract specific text from HTML using PHP's DOMDocument and XPath?

Menghuraikan HTML dengan DOMDocument PHP

Untuk mengekstrak elemen teks tertentu daripada HTML menggunakan DOMDocument PHP, memanfaatkan pertanyaan XPath boleh menjadi lebih berkesan daripada bergantung semata-mata pada DOMDocument::getElementsByTagName. Pertanyaan XPath membenarkan pemilihan tepat berdasarkan kriteria khusus dalam struktur dokumen.

Menangkap Teks daripada DIV Bersarang

Contoh HTML yang disediakan mengandungi

teg, di mana teks sasaran terletak dalam
elemen dengan kelas "teks", yang seterusnya bersarang dalam
elemen dengan kelas "utama".

Untuk menangkap teks sasaran, pertanyaan XPath boleh digunakan:

<code class="php">$xpath->query('//div[@class="main"]/div[@class="text"]');</code>

Pertanyaan ini memilih semua

elemen yang mempunyai atribut kelas ditetapkan kepada "teks" dan merupakan keturunan
elemen dengan atribut kelas ditetapkan kepada "utama". Hasilnya ialah senarai elemen padanan.

Mengulang dan Mengekstrak Nilai Nod

Untuk mengakses kandungan teks sebenar, setiap elemen padanan boleh diulang dan nodeValuenya sifat diakses:

<code class="php">foreach ($tags as $tag) {
    var_dump(trim($tag->nodeValue));
}</code>

Fungsi trim() digunakan untuk mengalih keluar sebarang ruang putih di hadapan atau di belakang daripada teks yang diekstrak.

Output Pelaksanaan

Melaksanakan kod akan mengeluarkan yang berikut:

string 'Capture this text 1' (length=19)
string 'Capture this text 2' (length=19)

Atas ialah kandungan terperinci Bagaimanakah cara saya mengekstrak teks khusus daripada HTML menggunakan DOMDocument dan XPath PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn