1
当前PHP:如何使用DOMXPath查询来获取区域形状
$dom = new DOMDocument();
$dom->loadHTML($htmlsrc);
$xpath = new DOMXPath($dom);
$tags = $xpath->query('//div/map/area');
foreach ($tags as $tag) {
var_dump(trim($tag->nodeValue));
}
这显然是不正确的。我有一个持有其中有少数(约8万),这些文件的的file_get_contents变量:
<area shape="poly" alt="" coords="500,327,464,349,467,385,478,400,492,394,500,356" href="1880314600" title="" />
我试图收集$ COORDS和$ HREF这样我就可以把这些数据库中,而不是一个文件,但我只是无法捕捉如何使用xpath。对不起,我没有正确的答案,“你有什么尝试?”我尝试了很多东西,我简直无法理解这个(或者正则表达式)。
编辑 的意见:
$xpath = new DOMXPath($dom);
var_dump($xpath);
$tags = $xpath->query('//div/map/area');
foreach ($tags as $tag) {
var_dump($tag->getAttribute('coords'));
}
第一的var_dump()所示:(编辑,因为有吨人)
object(DOMXPath)#2985 (1) { ["document"]=> string(22) "(object value omitted)" } string(47) "500,327,464,349,467,385,478,400,492,394,500,356" string(47) "559,310,530,314,532,394,543,389,561,367,561,351" string(63) "613,369,586,343,575,343,575,369,584,394,618,402,638,398,629,371" string(47) "523,431,501,438,498,451,537,468,550,464,550,447" string(39) "525,464,510,460,507,466,518,471,523,469"
然而第二的var_dump不返回任何东西。为什么第一个xpath转储只显示coords?进一步,我也不puting在这一点上查询...
'的var_dump($标签 - >的getAttribute( 'COORDS'));'? – PeeHaa 2013-03-11 15:49:07
我必须做错了什么,我没有从var_dump得到任何结果,甚至不是NULL。在我继续这个之前,让我确定我没有先做一些愚蠢的事情。 – 2013-03-11 16:00:51
做一个'var_dump($ htmlsrc)'来确保你得到了你期望的输入,然后确保DOM实际上能够加载/解析这个html - 它非常** **对错误html的挑剔。 – 2013-03-11 16:03:42