PHP извлекает тэги XML - PullRequest
1 голос
/ 27 июля 2011

Я на самом деле новичок с этими вещами XML.Я действительно разбираюсь в DOMDocument, DOMNOdeList и т. Д., Используя http://www.php.net/manual/en/intro.dom.php

, поэтому здесь есть проблема ..

http://jobhits.co.uk/services/rss?k=job

канал выше возвращает документ XML,я могу успешно получить имена тегов, такие как заголовок, описание и ссылка, используя эти коды

$doc->load('http://jobhits.co.uk/services/rss?k=job');
$items = $doc->getElementsByTagName("item");

foreach($items as $item){
    $titles[] = $item->getElementsByTagName("title");
}

проблема в том, что в этом документе есть 'tagname-like'

<a10:updated></a10:updated>

Я попытался получить это, используя

$update[] = $item->getElementsByTagName("a10:updated");

.., что является ошибкой

Вот пример XML http://piratelufi.com/ark/gettagname.xml или вы можете использовать строку внутри метода загрузкивыше:)

Кстати, я не могу использовать simpleXML и предопределенные классы, насколько это возможно, спасибо: D

Ответы [ 2 ]

2 голосов
/ 27 июля 2011

a10 jsut означает, что обновленный элемент находится в другом пространстве имен. Двоеточие : является специальным символом в этом контексте. В начале вашего примера xml (последний URL) вы найдете определение этого пространства имен: <rss xmlns:a10="http://www.w3.org/2005/Atom" version="2.0">. Так что вам нужно getElementsByTagNameNS. Я предполагаю, что что-то вроде: getElementsByTagNameNS("http://www.w3.org/2005/Atom","updated") может помочь.

2 голосов
/ 27 июля 2011

Вы ищете getElementsByTagNameNS,

...