2015-05-14 81 views
2

我正在研究從HTML DOM元素獲取數據的腳本。DomDocument/DOMXPath - 如何通過itemprop和img src獲取HTML Dom元素

這裏是我的代碼:

<?PHP 
$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); 

$Name = $xpath->query('//span[@id="ProductName"]')->item(0)->nodeValue; 

echo $Name; 
?> 

此代碼是簡單地把裏面的文字<span id="ProductName"></span>。我知道如何從具有特定類或ID的元素獲取數據。

我不知道如何從圖像標籤獲得src="http://adres-to-image.com/img.png"(例如純)或如何,我可以得到它沒有ID或類,但具有屬性像itemprop,要素例如<div itemprop="name"></div>

  1. 我怎樣才能獲得圖像src
  2. 我如何獲得元素itemprop

在此先感謝!

回答

1

對於你的例子:

$xpath->query('//img/@src)->item(0)->nodeValue 

這意味着

選擇所有的img標籤的所有SRC屬性,並獲得第一

$xpath->query('//div/[@itemprop="name"])->item(0)->nodeValue 

的值。這意味着

選擇itemprop attr等於name的所有div並獲得第一個值。

2

你只是看屬性:

$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); 

$Name = $xpath->query('//div[@class="productImageSash"]'); 
foreach($Name as $element){ 
    $imgs = $element->getElementsByTagName('img'); 
    foreach($imgs as $img){ 
     $src = $img->getAttribute('src'); 
     echo $src; 
    } 

} 

輸出:

/images/sash/productsash_mustgo.png 

itemprop屬性相同的是,尋找具有這種屬性的div:

$Name = $xpath->query('//div'); 
foreach($Name as $element){ 
    $itemprop = $element->getAttribute('itemprop'); 
    if($itemprop){ 
     echo "found"; 
    } 

}