创建 XML 时,我想知道为什么要使用 CDATA 块,而不仅仅是转义数据。CDATA 块中是否允许无法转义并放置在常规标记中的内容?
<node><![CDATA[ ...something... ]]></node>
代替
<node>...something...</node>
当然,无论哪种情况,您都需要转义数据:
function xmlspecialchars($text)
{
return str_replace(''', ''', htmlspecialchars($text, ENT_QUOTES, 'utf-8'));
}
从规范来看,当您无法选择转义数据时,CDATA 似乎只是一个可行的解决方案——但您仍然信任它。例如,来自您博客的 RSS 提要(由于某种原因无法转义实体)。