Возможный дубликат:
Как извлечь атрибут узла из 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
.