Получение только первого результата запроса DOM xPath - PullRequest
5 голосов
/ 22 января 2012

Допустим, у меня есть этот код:

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

Как получить содержимое атрибута value только для первого результата, поскольку я ожидаю только один результат (без использования foreachпетля).Я попытался var_dump -ing результат, но это не может.Я тоже попробовал current($result)->getAttribute('value') но не удача.

Ответы [ 2 ]

6 голосов
/ 22 января 2012

Вы можете получить к нему доступ следующим способом:

$value = $result->item(0)->attributes()->getNamedItem("value")->nodeValue;
2 голосов
/ 22 января 2012

Просто оцените это выражение XPath :

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

Это выбирает атрибут value первого input элемента в документе XML, строковое значение которого id атрибут "honey".

Если вы хотите получить не атрибут value, а его строковое значение, используйте :

string((//input[@id='honey'])[1]/@value)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...