Подтвердить что ты не робот

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

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

Как извлечь значение тега 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 как "нужно получить это"?

Update:

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

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

Ответ 1

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

Ответ 3

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

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

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

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

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

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

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