2016-11-23 6 views
0

Я читаю media: contenturl, без успеха. Как это сделать?Невозможно прочитать значение атрибута тегов xml <media: content>

XML

<rss> 
<item> 
     <media:content url="pizza.jpg"> 
     <media:text>Pizza</media:text> 
     </media:content> 
</item> 
<item> 
     <media:content url="pasta.jpg"> 
     <media:text>Pasta</media:text> 
     </media:content> 
</item> 
</rss> 

PHP

$xmlDoc = new DOMDocument(); 
$xmlDoc->load('file.xml'); 
$x=$xmlDoc->getElementsByTagName('item'); 
for ($i=0; $i<=2; $i++) { 
    $item_img=$x->item($i)->getElementsByTagName('media:content')->item(0)->getAttribute('url'); 
    echo $item_img 
} 
+0

Попробуйте SimpleXML. $ xml = new SimpleXML (''); $ attributes = $ xml-> item-> attributes(); –

+0

@WojtekB - удаленный XML-файл. – Vixed

+0

Здесь вы найдете [код для этого с SimpleXML] (http://stackoverflow.com/questions/1575788/php-library-for-parsing-xml-with-a-colons-in-tag-names). –

ответ

0

Пожалуй, худший из решений:

PHP

$xmlText= file_get_contents('file.xml'); 
$xmlText=str_replace('<media:', '<media', $xmlText); 
$xmlText=str_replace('</media:', '</media', $xmlText); 
$xmlDoc = new DOMDocument(); 
$xmlDoc-> loadXML($xmlText); 
$x=$xmlDoc->getElementsByTagName('item'); 
for ($i=0; $i<=2; $i++) { 
    $item_img=$x->item($i)->getElementsByTagName('mediacontent')->item(0)->getAttribute('url'); 
    echo $item_img 
}