xpath — извлекает значение входного скрытого переполнения стека DOMXpath

Мне нужно взять атрибут value используя xpath, я пробовал несколько раз, но всегда получаю null,

Вот мой HTML-код:

<input type="hidden" id="Lat" name="myMap" value="22.445575, -18.722164">

Код в php:

$val= $xpath->query('//input[@type="hidden" and @name="myMap"]/@value' );

$list=array();

foreach($val as $v){
$list[]=$v->nodeValue;
}

var_dump($list);
$sValue= (string)$val[0];

Заметки:

  • Я пытался с другим xpath в том же URL, и он работает, но не со скрытым вводом
  • Я пробовал с $v->item(0); или же item(0)->nodeValue; и они всегда дают один и тот же результат

0

Решение

это ваш код с использованием DOM xpath:

$html='<input type="hidden" id="Lat" name="myMap" value="22.445575, -18.722164">';
$doc = new DOMDocument;
$doc->loadHTML($html);
$xpath = new DOMXpath($doc);
$val= $xpath->query('//input[@type="hidden" and @name = "myMap"]/@value' );
$list=array();
foreach($val as $v){
$list[]=$v->nodeValue;
}
var_dump($list);
0

Другие решения

Я нахожу решение для вас, используя PHP Simple HTML DOM Parser:

не забудьте скачать эту библиотеку:
http://simplehtmldom.sourceforge.net/

include("simple_html_dom.php");
$html=str_get_html('<input type="hidden" id="Lat" name="myMap" value="22.445575, -18.722164">');
$input_val=$html->find('input[type=hidden],[name=myMap]',0)->getAttribute("value");
echo $input_val;

если вы хотите получить html из URL, измените str_get_html с file_get_html:

$html=file_get_html("http://www.example.com/page");
0

По вопросам рекламы [email protected]