Php 匹配特定属性的xPath问题

Php 匹配特定属性的xPath问题,php,xpath,Php,Xpath,我有下面的HTML,我正试图从中提取state属性 <div id="content" class="listing mapListing" longitude="123.0000" latitude="-123.0000" listingName="business" business=";12345678;;;;evar01=name" state="NSW" events="1"> 但是,;返回listing而不是listing mapListing,我怀疑是空间造成了问题

我有下面的HTML,我正试图从中提取state属性

<div id="content" class="listing mapListing" longitude="123.0000" latitude="-123.0000" listingName="business" business=";12345678;;;;evar01=name" state="NSW" events="1">
但是,;返回listing而不是listing mapListing,我怀疑是空间造成了问题

$xpath = new DomXPath($html); 
        foreach ($xpath->query("//div[@id='content']") as $item) { 
                  echo $item->getAttribute("class");
        }

有人对如何匹配state属性有什么建议吗?

您是否在文档中通过xmlns设置了html名称空间?除非注册名称空间,否则PHP将找不到任何元素:

$xpath = new DomXPath($html);
$xpath->registerNamespace('html', 'http://www.w3.org/1999/xhtml'); // or smth else
    foreach ($xpath->query("//html:div[@id='content']") as $item) { 
              echo $item->getAttribute("state");
    }

它在这里返回“NSW”。。。PHP5.3.2、libxml2.7.7.Oh,我还得到了清单mapListing。您是否100%确定看到的是正确的文档和节点?Wat执行$item->ownerDocument->saveXML$item;明白吗?或者$xpath->query//div[@id='content']/@state;关于这件事…谢谢各位,我在别的地方有个问题。我正在追查这个问题。。。
$xpath = new DomXPath($html);
$xpath->registerNamespace('html', 'http://www.w3.org/1999/xhtml'); // or smth else
    foreach ($xpath->query("//html:div[@id='content']") as $item) { 
              echo $item->getAttribute("state");
    }