HTML sayfası üzerinde XPath sorgu - sözdizimi?

2 Cevap php

Bu URL var: -

http://ask.recipelabs.com/users

ve ben div id 'çağrı' en yüksek sayfa numarasını bulmak istiyorsanız (bu durumda 7)

Bunu denedim ama sıfır döndürür:

function getusers($url)
{
$doc = new DOMDocument;
$doc->loadhtml($url);
$xpath = new DOMXPath($doc);
$nodelist = $xpath->query('//span[@class="page-numbers"]');
echo 'there are ', $nodelist->length, ' span elements having class="page-numbers"';
}

Benim sözdizimi yanlış mı? Sonra dizi adım ve yüksek sayı bulmak için umuyordum.

Teşekkürler

Jonathan

2 Cevap

Eğer deneyebilirsiniz:

(//span[@class="page-numbers"][number(.) > 0])[last()]

Bu size bu içeriği olduğu gibi hala bir numara olan son düğümü verir.

Sorun kullanıyor olmasıdır

$doc->loadhtml($url);

$ Url kötü adlandırılan sürece, bir URL değil, HTML içeren bir dizedir. Böyle bir dize hemen hemen boş bir DOM, bütün beklenen XPath ile kesinlikle bir değil, et voila ayrıştırır ...

Belki demek $doc = loadHTMLFile($url);?