XPath получает значение атрибута в PHP

Возможный дубликат:
Как извлечь атрибут узла из XML с помощью PHP DOM Parser

Как извлечь значение тега HTML?

HTML:

<input type="hidden" name="text1" id="text1" value="need to get this"> 

PHP:

 $homepage = file_get_contents('http://www.example.com'); $doc = new DOMDocument; $doc->preserveWhiteSpace = false; @$doc->loadHTML($homepage); $xpath = new DOMXpath($doc); $filtered = $xpath->query("//input[@name='text1']"); 

Как мне получить value «нужно получить это» ?

Обновить:

Я заработал и надеюсь, что это тоже поможет другим. После выше кода я получил значение:

 echo $filtered->item(0)->getAttribute('value'); 

XPath может выполнить задачу получения атрибута value с помощью $xpath->query("//input[@name='text1']/@value"); , Затем вы можете выполнить итерацию по узлу списка узлов атрибутов и получить доступ к $value каждого узла атрибута.

Посмотрите этот метод DOM http://www.php.net/manual/en/domelement.getattribute.php

 var array_result = arrray(); foreach (filtered as $key => $value){ $array_result[] = $value->getAttribute('ID'); } 

Я не знаком с синтаксисом PHP для этого, но для выбора атрибута value вы должны использовать следующий xpath:

 //input[@name='text1']/@value 

Однако xpath не возвращает строки, он возвращает узлы. Вы хотите value узла, поэтому, если PHP следует за соглашением, этот код будет:

  $xpath->query("//input[@name='text1']/@value")->value; 

В целях обучения помните, что вы всегда проверяете свойство value . Поэтому, если вам нужно имя одного и того же элемента, вы должны использовать:

  $xpath->query("//input[@name]/@name")->value; 

Вероятно, вы должны убедиться, что запрос возвращает ненулевое значение перед запросом свойства value .