簡體   English   中英

使用 DOMDocument 和 DOMXPath 的 HTML 解析 URL - 通過 ID 獲取元素

[英]HTML Parsing URL with DOMDocument and DOMXPath - Get element by ID

我已經開始開發一個腳本,以便我可以解析 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 元素<span id="ProductName"></span>的文本

我的腳本的問題是我只得到空白屏幕,根本沒有結果。

你能幫我了解一下這個東西是如何工作的嗎?

提前致謝!

A您應該檢查您的查詢是否產生了任何元素(DOMNodelist)。 首先檢查它然后獲取元素。

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

旁注:雖然我無法在移動設備上進行測試,但這應該是基本思想

在這里你有例子:

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

你可以這樣做:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM