当前的PHP:
$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));
}
这显然是不正确的。我有一个变量,它包含一个文件的file_get_contents,其中有一些(大约8千)这些:
<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?此外,我甚至没有在那时提出疑问......
答案 0 :(得分:1)
要获取坐标(或任何其他属性)can simply do:
var_dump($tag->getAttribute('coords'));
如果您还想获得href
属性,则可以执行以下操作:
var_dump([
'coords' => $tag->getAttribute('coords'),
'href' => $tag->getAttribute('href'),
]);