Разбор XML-атрибутов внутри тега пространства имен (PHP) - PullRequest
1 голос
/ 14 июля 2011

Я использую PHP и CURL для получения XML, но у меня проблемы с доступом к атрибутам определенного типа.

Скажем, документ XML выглядит так:

<item>
    <title>Example Title</title>
    <link>http://www.google.com</link>
    <description>Sample desc here.</description>
    <media:content xmlns:media="http://mediaurl.com/" url="http://www.exampleurl.com/"
    type="image/jpeg" medium="image" height="226" width="571">
    </media:content>
</item>

Я хочу получить доступ к атрибуту url внутри тега, но не могу обойти проблему с пространством имен.

В настоящее время я пробовал использовать:

$promos = $item->getElementByTagNameNS("media", "content");
foreach ($promos as $promo)
{
    $promoImage = $promo->getAttribute("url");
    break;
}
echo $promoImage;

1 Ответ

1 голос
/ 14 июля 2011

См. http://www.php.net/manual/en/domdocument.getelementsbytagnamens.php. Вам необходимо зарегистрировать пространство имен с помощью namespaceURI в вашем XML и указать его.

ДОБАВЛЕНО

В начале я не делалне вижу, что у вас есть атрибут xmlns: media в вашем XML.Поэтому все, что вам нужно изменить, это строка

$promos = $item->getElementsByTagNameNS("http://mediaurl.com/", "content");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...