【问题标题】:Simple HTML DOM help简单的 HTML DOM 帮助
【发布时间】:2009-11-20 16:35:59
【问题描述】:

如何提取输入标签的值属性?使用 简单的 HTML DOM 让我举个例子:

<form action="#" method="post" name="test_form" id="test_form">
Name<input type="text" name="name" value="NaMe"/><br />

Address<input type="text" name="address" value="AdDrEsS"/><br />

<input type="hidden" value="sayantest" />
</form>

我只想提取隐藏类型输入标签的值,而不是其他的。

【问题讨论】:

  • 您使用什么语言访问 DOM? Javascript?
  • 你说的是这个 PHP 库吗? simplehtmldom.sourceforge.net
  • 大卫:似乎是,是的。标记

标签: php html dom simple-html-dom


【解决方案1】:

您想将 id(以便您可以在 javascript 中访问该值)以及一个名称(如果您想访问服务器上的值)放在您希望从中获取值的标签中。

例如

<input type="hidden" name="test" id="test" value="sayantest" />

那么你的 javascript 就这么简单:

<script type="text/javascript">
  var val = document.getElementById('test').value;
  alert(val);
</script>

【讨论】:

  • +1 您还可以考虑使用 jQuery 库并使用它访问您的元素。如果你确实使用 jQuery,你的代码可能看起来像这样 $('#test').val();
【解决方案2】:

使用简单的 HTML DOM

你是说那个名字的 PHP 库吗?

如果是这样,您必须选择一种方法来识别输入。如果您无法更改标记以在所需的隐藏输入上添加idname,则必须想出类似“获取表单中隐藏类型的第一个输入”:

$html= new simple_html_dom();
$html->load('<html><body<form action="#" method="post" name="test_form" id="test_form">Name<input type="text" name="name" value="NaMe"/><br />Address<input type="text" name="address" value="AdDrEsS"/><br /><input type="hidden" value="sayantest" /></form></body></html>');

$input= $html->find('#test_form input[type=hidden]', 0);
$input->value;

【讨论】:

    【解决方案3】:

    如前所述,最简单的方法是给隐藏输入一个id 属性,然后使用getElementById,然后使用.value.getAttribute('value') 来选择它。

    或者,如果您想获取页面上所有隐藏输入的值,或者无法注入您的 ID,您可以使用以下内容:

    var inputs = document.getElementsByTagName('input');
    for(var i = 0; i < inputs.length; i++){
        if(inputs[i].getAttribute('type') == 'hidden'){
            alert(inputs[i].getAttribute('value'));
        }
    }
    

    【讨论】:

      【解决方案4】:

      这就是我想出的...完全使用您在最初问题中显示的内容。请注意,我所做的只是 echo 隐藏所有输入的值,其中 test_form.htm 是您的原始值:

      <?php
      function scraping_form()
      {
         // create HTML DOM
         $html = file_get_html('test_form.htm');
      
         // get input hidden value
         $aObj = $html->find('input[type="hidden"]');
         foreach ($aObj as $hKey=>$hidden)
         {
           $valueAttribute = $hidden->value;
           echo "*TEST* ".$hKey.": ".$valueAttribute."<br />";
         }
      
         // clean up memory
         $html->clear();
         unset($html);
      
         return;
      }
      // -----------------------------------------------------------------------------
      // test it!
      // user_agent header...
      ini_set('user_agent', 'My-Application/2.5');
      scraping_form();
      ?>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-04
        • 1970-01-01
        • 1970-01-01
        • 2012-06-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-02-01
        相关资源
        最近更新 更多