XML:即使在转义字符串时也无法加载

时间:2014-07-18 11:04:49

标签: php xml

我有大问题,即使每个特殊字符都被转义,我也无法加载XML文件。我的XML:

    <code1>
    <code>&lt;?php
        // create curl resource
        $ch = curl_init();

        // set url
        curl_setopt($ch, CURLOPT_URL, &quot;example.com&quot;);

        //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);
?&gt;</code>
</code1>

当我在<code></code>中插入另一个字符串时,例如。 Hello world,它有效。为什么它不起作用?顺便说一句,我正在使用PHP's simplexml_load_file。谢谢。

1 个答案:

答案 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);