我需要使用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");