提取输入隐藏DOMXpath php的值


Extract value of a input hidden DOMXpath php

我需要使用xpath获取属性value,我尝试了几次,但总是得到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;,它们总是产生相同的结果

这是您使用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);

我找到一个解决方案为您使用PHP简单的HTML DOM解析器:

不要忘记下载这个库: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;

如果你想从url中获取HTML,把str_get_html改成file_get_html:

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