Php 如何使用DOMXPath查询获取区域形状

Php 如何使用DOMXPath查询获取区域形状,php,html,xpath,domxpath,Php,Html,Xpath,Domxpath,当前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)); } 这显然是不正确的。我有一个变量,

当前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\u get\u内容,该文件包含以下几个(大约8000个)内容:

<area shape="poly" alt="" coords="500,327,464,349,467,385,478,400,492,394,500,356" href="1880314600" title="" />
第一个var_dump()显示:(编辑,因为有很多)

但是,第二个var_转储不会返回任何内容。为什么第一个xpath转储只显示坐标?此外,我甚至没有在该点输入查询…

以获取坐标(或任何其他属性),您:

如果您还想获得
href
属性,只需执行以下操作:

var_dump([
    'coords' => $tag->getAttribute('coords'),
    'href'   => $tag->getAttribute('href'),
]);
要获取坐标(或任何其他属性),请执行以下操作:

如果您还想获得
href
属性,只需执行以下操作:

var_dump([
    'coords' => $tag->getAttribute('coords'),
    'href'   => $tag->getAttribute('href'),
]);

var_dump($tag->getAttribute('coords')?我一定是做错了什么,我没有从var_dump甚至NULL得到任何结果。让我先确定我没有做什么愚蠢的事情,然后再继续。做一个
var\u dump($htmlsrc)
来确保你得到了你期望的输入,然后确保DOM确实能够加载/解析该html-它对格式错误的html非常挑剔。请检查帖子中的编辑。它将返回所有的coords而不使用xpath查询…我不介意,但我也希望href=“”;没关系,我没看到是两个物体。我很笨。谢谢@PeeHaa,如果你想补充这一点作为回答,我很乐意标记为已回答。正是我需要的。我正忙着把它复杂化。
var_dump($tag->getAttribute('coords')?我一定是做错了什么,我没有从var_dump甚至NULL得到任何结果。让我先确定我没有做什么愚蠢的事情,然后再继续。做一个
var\u dump($htmlsrc)
来确保你得到了你期望的输入,然后确保DOM确实能够加载/解析该html-它对格式错误的html非常挑剔。请检查帖子中的编辑。它将返回所有的coords而不使用xpath查询…我不介意,但我也希望href=“”;没关系,我没看到是两个物体。我很笨。谢谢@PeeHaa,如果你想补充这一点作为回答,我很乐意标记为已回答。正是我需要的。我忙得不可开交。
var_dump($tag->getAttribute('coords'));
var_dump([
    'coords' => $tag->getAttribute('coords'),
    'href'   => $tag->getAttribute('href'),
]);