我已开始开发脚本,因此我可以解析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>
我的脚本问题是我只得到空白屏幕,根本没有结果。
请你帮我理解这件事是如何运作的。
提前致谢!
答案 0 :(得分:1)
你应该检查你的查询是否产生了任何元素(DOMNodelist)。先检查一下然后得到元素。
$elements = $xpath->query('//span[@id="ProductName"]');
if($elements->length > 0) {
echo $elements->item(0)->nodeValue;
}
旁注:虽然我在移动设备上无法测试这个但这应该是基本的想法
答案 1 :(得分:0)
这里有例子:
http://php.net/manual/en/class.domxpath.php
你可以这样做:
$val=$xpath[0]->nodeValue;
var_dump($val);