我有大问题,即使每个特殊字符都被转义,我也无法加载XML文件。我的XML:
<code1>
<code><?php
// create curl resource
$ch = curl_init();
// set url
curl_setopt($ch, CURLOPT_URL, "example.com");
//return the transfer as a string
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// $output contains the output string
$output = curl_exec($ch);
// close curl resource to free up system resources
curl_close($ch);
?></code>
</code1>
当我在<code></code>
中插入另一个字符串时,例如。 Hello world
,它有效。为什么它不起作用?顺便说一句,我正在使用PHP's simplexml_load_file
。谢谢。
答案 0 :(得分:0)
通过将内容包装在CDATA块中,可以使XML解析器(PHP)忽略内容。通过以simplexml_load_file
作为第三个参数调用LIBXML_NOCDATA
,PHP将返回CDATA块中的内容,但不会干扰内容(转义字符)。
因此,解决方案是将XML内容包装在CDATA块中:
<code1>
<code>
<![CDATA[contents with special characters]]>
</code>
</code1>
使用以下命令在PHP中加载文件:
$xml = simplexml_load_file($file_xml, null, LIBXML_NOCDATA);