用<;!用PHP解析XML;![CDATA


Parsing XML with PHP with <![CDATA[

我用PHP解析XML,使用simplexml_load_file,然后使用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>

知道为什么会发生这种事吗?

您应该使用LIBXML_NOCDATA选项:

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

好吧,我找到了解决这个问题的方法,我刚刚在变量中添加了substr$band = substr($band, 1);,所以它删除了变量的第一个字符,它就工作了。