2015-06-08 7 views
0

Мне нужно взять атрибут value с помощью xpath, я несколько раз пытался, но всегда получаю null.Извлечь значение входа скрытого DOMXpath php

Вот мой 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

Чтобы получить значение, используйте 'evaluate' см https://stackoverflow.com/a/45010743/287948 –

ответ

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; 

если вы want fetch html from url change str_get_html с файлом_get_html:

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

Ну ТНХ помощь, проблема str_get_html, не является строкой. Является ли код на странице html, но я не могу сохранить его на переменной, если я могу сохранить его в этой работе на 100%. И с file_get_html dont work: s Anyways я иду попробовать больше раз, и я оценил вашу помощь :) – Mystgun