php中使用CDATA转义特殊字符


Escaping special characters using CDATA in php

这让我保持了几天。尝试用这些值输出XML。底线是,它工作得很好,但不是特殊字符,我想用CDATA转义。我尝试了$output .= '<name>'<![CDATA['.$_category->getName().']]>'</name>';,但没有显示任何数据。这意味着$_category->getName()方法不会运行。当没有CDATA时,下面的代码会中断。

       $output .= '<category>';
       $output .= '<name>'.$_category->getName().'</name>';
       $output .= '<url>'.$_category->getUrl().'</url>';
       $output .= '</category>';

你必须把你想要发送给浏览器的文字放在字符串文字中。

$output .= '<name><![CDATA[' . $_category->getName() . ']]></name>';

也就是说,不要试图通过拼凑字符串来构建XML,这样只会导致意外数据引入错误。使用真正的XML库