PHP: XPath kullanarak bir html sayfa içeriği Fetch ()

0 Cevap php

Ben XPath ve DOMDocument kullanarak bir html sayfası içinde bir div içeriğini almak için çalışıyorum. Bu sayfa yapısı:

<div id="content">
<div class="div1"></div>
<span class="span1></span>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<div class="div2"></div>
</div>

Ben p sadece içeriği değil, yayılma ve divs almak istiyorum. Ben bu xpath ifade .//*[@id='content']/p aracılığıyla geldi ama ben sadece ilk p alıyorum çünkü bir şey doğru değil sanırım. Aşağıdaki-kardeş ve düğüm () ile diğer bir ifade kullanarak hepsi değil sadece ilk p geri çalıştı.

.//*[@id='content']/span/following-sibling::p
.//*[@id='content']/node()[self::p]

Bu XPath kullanılır nasıl:

$domDocument=new DOMDocument();
$domDocument->encoding = 'UFT8';
$domDocument->loadHTML($page);
$domXPath = new DOMXPath($domDocument);
$domNodeList = $domXPath->query($this->xpath);
$content = $this->GetHTMLFromDom($domNodeList);

Ve bu i düğümleri html olsun nasıl:

private function GetHTMLFromDom($domNodeList){
$domDocument = new DOMDocument();
$node = $domNodeList->item(0);   
 foreach($node->childNodes as $childNode)
 $domDocument->appendChild($domDocument->importNode($childNode, true));
return $domDocument->saveHTML();
}

0 Cevap