Проблемы с пространством имен в PHP - PullRequest
6 голосов
/ 20 января 2010

Вечерние парни.

Во-первых, я прочитал Как проанализировать XML, содержащий пользовательские пространства имен, с помощью SimpleXML? .

Я анализирую XML-документ из источника, а не ума, и они используют собственное пространство имен.

<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:moshtix="http://www.moshtix.com.au">
  <channel>
   <item>
    <link>qweqwe</link>
    <moshtix:genre>asdasd</moshtix:genre>
...

Например. Когда я анализирую с помощью SimpleXML, ни один из элементов пространства имен mostix: не показывается и не доступен. Возможно, действительно простое решение, но есть идеи, ребята?

1 Ответ

7 голосов
/ 20 января 2010

Обычно люди используют детей () .

$rss = simplexml_load_string(
    '<?xml version="1.0" encoding="utf-8"?>
    <rss version="2.0" xmlns:moshtix="http://www.moshtix.com.au">
        <channel>
            <link>qweqwe</link>
            <moshtix:genre>asdasd</moshtix:genre>
        </channel>
    </rss>'
);

foreach ($rss->channel as $channel)
{
    echo 'link: ', $channel->link, "\n";
    echo 'genre: ', $channel->children('moshtix', true)->genre, "\n";
}
...