提取输入隐藏DOMXpath php的值

Posted

技术标签:

【中文标题】提取输入隐藏DOMXpath php的值【英文标题】:Extract value of a input hidden DOMXpath php 【发布时间】:2015-08-23 14:26:28 【问题描述】:

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

注意事项:

我已经尝试在同一个 url 中使用其他 xpath 并且它可以工作,但不能使用隐藏输入 我尝试过使用$v-&gt;item(0);item(0)-&gt;nodeValue;,它们总是产生相同的结果

【问题讨论】:

要获取值,请使用evaluate,参见***.com/a/45010743/287948 【参考方案1】:

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

【讨论】:

【参考方案2】:

我使用 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;

如果您想从 url 获取 html,请使用 file_get_html 更改 str_get_html :

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

【讨论】:

谢谢帮助,问题是str_get_html,不是字符串。是 html 页面中的代码,但我无法将它保存在变量中,如果我可以 100% 保存它的话。并且使用 file_get_html 不起作用:s 无论如何,我会尝试更多次,我感谢您的帮助 :) 在这种情况下,您可以使用 file_get_html($url) 而不是 str_get_html

以上是关于提取输入隐藏DOMXpath php的值的主要内容,如果未能解决你的问题,请参考以下文章

使用 autocomplete.js 中的值的 id 填充隐藏的输入

获取 symfony 控制器中隐藏输入字段的值属性

Loop时输入类型隐藏值不显示在PHP中

我可以使用 DOMXPath 在 Li 类中提取图像源吗? [复制]

如何克隆隐藏输入的值并附加到另一个 div?

如何通过 JavaScript 设置输入隐藏字段的值?