2013-08-24 7 views
0

Я разборе XML с PHP с использованием simplexml_load_file, то я json_encode и json_decode для того, чтобы получить всю информацию как массивы:Синтаксический XML с PHP с <[CDATA [

$xml = simplexml_load_file('/var/www/darkglass/wp-content/themes/dark2/assets/xml/artists.xml'); 
$musicos = json_encode($xml); 
$musicos = json_decode($musicos, true); 

У меня это проблема, когда я хочу, чтобы добавить HTML-код внутри тега, но он работает только если добавить символ перед <![CDATA, как на примере ниже:

Это не работает:

<band><![CDATA[<a class="abandlink" href="#">Cannibal Corpse</a>]]></band> 

Это работает:

<band>.<![CDATA[<a class="abandlink" href="#">Cannibal Corpse</a>]]></band> 

Любая идея, почему это происходит?

+0

Какой код вы используете? Какая ошибка это дает? – Thanatos

+0

вот как я получаю xml в массив: [link] (http://pastebin.com/xrF9jvPJ) Если я не добавлю "." или любой другой символ перед

ответ

-1

Ну, я нашел обходной путь к этой проблеме, я просто добавил substr, $band = substr($band, 1); к переменной, поэтому она удаляет первый символ переменной, и она работает.

1

Вы должны использовать LIBXML_NOCDATA вариант:

$xml = simplexml_load_file('artists.xml', 'SimpleXMLElement', LIBXML_NOCDATA); 
Смежные вопросы