NodeValue PHP DOMDocument sınıfını kullanarak almak için açılamıyor

2 Cevap php

PHP DOMDocument Sınıfı'nı kullanarak bir HTML belgesi ayrıştırma duyuyorum, ben bir div elemanının nodeValue almak istedim, ama o, bana boş veriyor

<div id="summary">
   Hi, my name is <span>ABC</span>
   <br/> 
   address is here at stackoverflow...
   <span>....
   ....
</div>

div içinde değerini almak istiyorum, ve kod i wass yazdı

$div_node=$dom->getElementById("summary");
$node_value=$div_node->nodeValue;

ama bana boş bir değer veriyor, lütfen yardım.

2 Cevap

Id böylece sorgulanan olamaz belgede kayıtlı değil. Bir seçenek açıkça her elemanın niteliği onun kimliği olduğu ilan HTML geçmesi için, başka bir seçenek DTD karşı belgeyi ayrıştırmak ve üçüncü kullanın getElementById yerine XPath kullanmaya çalışıyor bırakmaktır.

İkincisi gibi bir şey (XPath sorgusu olmanın kilit noktası) kullanmak istiyorsunuz:

$xpath     = new DOMXPath($dom);
$summaries = $xpath->query('//div[@id="summary"]');
$summary   = 'unknown';
if ($summaries->length > 0) {
    $summary = $summaries->item(0)->nodeValue;
}

DOMDocument sınıfı geçerli HTML gerektirir, div etiketi kapalı değil. Null döndürür zaman o eleman bulamıyor demektir.