【问题标题】:Extract value of a input hidden DOMXpath php提取输入隐藏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;,它们总是产生相同的结果

【问题讨论】:

标签: php xpath input hidden nodevalue


【解决方案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
    猜你喜欢
    • 2011-01-13
    • 2022-01-02
    • 2013-01-09
    • 2019-05-11
    • 2013-08-18
    • 2018-01-28
    • 2013-08-18
    • 2013-06-12
    • 1970-01-01
    相关资源
    最近更新 更多