我有以下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");
}
有没有人对我如何与“州”属性进行匹配有任何建议?
答案 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");
}