парсинг xml id с сайта xml parser php - PullRequest
1 голос
/ 17 января 2012

Я хотел бы проанализировать следующий идентификатор: date

Как бы я выбрал это? Я знаю, как выбрать класс, но мне не повезло с идентификатором.

Вот что я сделал с классами:

$xml->xpath('//*[@class="date"]'); 

Я попытался переключить @class на @id, но не повезло. Что я делаю не так?

Заранее спасибо

@$doc=new DOMDocument();
@$doc->loadHTML($html5);

$xml=simplexml_import_dom($doc);
$images=$xml->xpath('//*[@id="date"]'); 
$arr= array();
foreach ($images as $img) {
  $arr[]= $img;
}

echo $arr[0];

1 Ответ

2 голосов
/ 17 января 2012

Теперь, когда вы заставили меня чувствовать себя плохо ...

Запрос xpath ниже извлечет все элементы, имеющие атрибут id = date.Так как вы заботитесь только о первом (их не должно быть больше одного, потому что атрибуты ID должны быть уникальными ... но вы никогда не узнаете), вам нужно сослаться на item(0) в DOMNodeList, возвращаемом xpathquery.

$xml = '<root><p>element we don\'t care about</p><p id="date">date element text</p></root>';
$doc = new DomDocument;
$doc->loadXML($xml);

$xpath = new DOMXPath($doc);
if ($el = $xpath->query("//*[@id='date']")->item(0)) {
  echo $el->nodeValue; // outputs: date element text
} else {
  echo 'no elements exist in the xml with an "id" attribute';
}

Надеюсь, что поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...