2012-01-22 10 views
5

Powiedzmy mam ten kod:Uzyskiwanie tylko pierwszy wynik zapytania DOM XPath

$dom = new DOMDocument(); 
@$dom->loadHTMLFile('sample.html'); 
$xp = new DOMXPath($dom); 
$result = $xp->query("//input[@id='honey']"); 

Jak mogę uzyskać zawartość atrybutu value zaledwie pierwszy wynik, ponieważ jestem tylko oczekując jednego wynik (bez użycia pętli foreach). Próbowałem var_dump -poprzez wynik, ale nie może. Próbowałem też current($result)->getAttribute('value'), ale nie szczęścia.

Odpowiedz

6

można uzyskać do niego dostęp za pomocą następującej metody:

$value = $result->item(0)->attributes()->getNamedItem("value")->nodeValue; 
1

Wystarczy ocenić to wyrażenie XPath:

(//input[@id='honey'])[1]/@value 

ten wybiera atrybut value pierwszego input elementu w dokumencie XML wartość ciągu znaków, którego atrybut id to "honey".

Jeśli chcesz dostać nie atrybut value, ale jego wartość ciągu, należy:

string((//input[@id='honey'])[1]/@value) 
Powiązane problemy