2015-05-14 185 views
2

我已经开始开发脚本,所以我可以解析HTML DOM元素。HTML解析URL与DomDocument和DOMXPath - 通过ID获取元素

以下是我已经做了:

<?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>

与我的脚本问题的文本是我得到的只有黑屏,根本没有结果。

你能帮我解决这件事情是如何工作的吗?

在此先感谢!

回答

1

a您应该检查你的查询是否取得任何元素(的DOMNodeList)。检查它,然后获取元素。

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

旁注:不能测试移动这虽然IM,但是这应该是基本的想法

0

在这里,您有例如:

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

你可以这样做:

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

请看看我的更新问题。我已经通过您提供的链接完成了所有工作,但我只获得了空白屏幕。你能帮我吗 ? –

+0

我看到你在节点元素'中有空白,这里有一些问题'在我给你的前提下“这是一些想法” – Adam