【问题标题】:HTML Parsing URL with DOMDocument and DOMXPath - Get element by ID使用 DOMDocument 和 DOMXPath 解析 URL - 按 ID 获取元素
【发布时间】:2015-05-14 11:10:23
【问题描述】:

我已经开始开发一个脚本,以便解析 HTML DOM 元素。

这是我已经做过的:

<?PHP
// to retrieve selected html data, try these DomXPath examples:

$url = 'http://www.sportsdirect.com/nike-satire-mens-skate-shoes-242188?colcode=24218822';
libxml_use_internal_errors(true); 
$doc = new DOMDocument();
$doc->loadHTMLFile($url);

$xpath = new DOMXpath($doc);

$elements = $xpath->query("*/span[@id='ProductName']");

if (!is_null($elements)) {
  foreach ($elements as $element) {
    echo "<br/>[". $element->nodeName. "]";

    $nodes = $element->childNodes;
    foreach ($nodes as $node) {
      echo $node->nodeValue. "\n";
    }
  }
}
?>

     

我想要的只是获取HTML元素&lt;span id="ProductName"&gt;&lt;/span&gt;中包含的文本

我的脚本的问题是我只得到空白屏幕,根本没有结果。

你能帮我了解一下这个东西是如何工作的吗?

提前致谢!

【问题讨论】:

    标签: php html xpath domdocument


    【解决方案1】:

    A您应该检查您的查询是否产生了任何元素(DOMNodelist)。先检查再获取元素。

    $elements = $xpath->query('//span[@id="ProductName"]');
    if($elements->length > 0) {
        echo $elements->item(0)->nodeValue;
    }
    

    旁注:虽然我在移动设备上无法测试,但这应该是基本想法

    【讨论】:

      【解决方案2】:

      这里有例子:

      http://php.net/manual/en/class.domxpath.php

      你可以这样做:

      $val=$xpath[0]->nodeValue;
      var_dump($val);
      

      【讨论】:

      • 请查看我更新的问题。我已经通过您提供的链接完成了所有操作,但我得到的只是空白屏幕。你能帮帮我吗?
      • 我看到你在节点元素 &lt;span id="ProductName"&gt;Here is somethink&lt;/span&gt; 内部有空白@在我的前任上,你给出了“这是一些想法”
      猜你喜欢
      • 2015-02-28
      • 2013-04-09
      • 1970-01-01
      • 1970-01-01
      • 2014-10-31
      • 1970-01-01
      • 1970-01-01
      • 2013-02-17
      • 2012-03-22
      相关资源
      最近更新 更多