使用PHP解析XML <! - [CDATA [ - >

时间:2013-08-24 23:31:11

标签: php xml json parsing

我正在使用simplexml_load_file解析XML,然后使用json_encodejson_decode来获取所有信息作为数组:

$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>

知道为什么会这样吗?

2 个答案:

答案 0 :(得分:1)

您应该使用LIBXML_NOCDATA选项:

$xml = simplexml_load_file('artists.xml', 'SimpleXMLElement', LIBXML_NOCDATA);

答案 1 :(得分:-1)

好吧,我找到了解决这个问题的方法, 我刚刚将substr$band = substr($band, 1);添加到变量中,因此它删除了变量的第一个字符,并且它可以正常工作。