xPath问题匹配特定属性

时间:2010-09-16 23:47:48

标签: php xpath

我有以下HTML,我试图将状态属性拉出来。

<div id="content" class="listing mapListing" longitude="123.0000" latitude="-123.0000" listingName="business" business=";12345678;;;;evar01=name" state="NSW" events="1">

我正在尝试使用以下PHP进行匹配,但不返回“NSW”。

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

然而,以下;返回“列表”(而不是“列出mapListing”),我的怀疑是空间导致问题

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

有没有人对我如何与“州”属性进行匹配有任何建议?

1 个答案:

答案 0 :(得分:0)

您是否通过文档中的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");
    }