Проблема xPath с определенным атрибутом - PullRequest
0 голосов
/ 17 сентября 2010

У меня есть следующий 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 голосов
/ 17 февраля 2011

Задано ли в документе пространство имен html через xmlns?Тогда 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");
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...