如何保存<和>使用SimpleXML在元素值中?

时间:2013-11-21 07:19:36

标签: php xml simplexml

我想用PHP中的简单XML解析这个XML文件:

<?xml version="1.0" encoding="UTF-8"?>
<data>
    <title>Lorem ipsum</title>
    <content>Whoa, <ducks>!</content>
</data>

我想在内容元素中保留 ,所以我尝试对其进行HTML编码:

<?xml version="1.0" encoding="UTF-8"?>
<data>
    <title>Lorem ipsum</title>
    <content>Whoa, &lt;ducks&gt;!</content>
</data>

但是SimpleXML给了我这个错误:

Warning: simplexml_load_string(): Entity: line 3: parser error : Premature end of data in tag content

然后我尝试了URLencode:

<?xml version="1.0" encoding="UTF-8"?>
<data>
    <title>Lorem ipsum</title>
    <content>Whoa%2C%20%3Cducks%3E!</content>
</data>

它给了我这个:

Warning: simplexml_load_string(): Entity: line 3: parser error : Opening and ending tag mismatch: ducks

这是我目前的PHP代码,非常简单,对吧?

$request = simplexml_load_string($_POST["data"]);

那么,在保留特殊字符的同时解析XML文件的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

将您的值包装在CDATA中

<title><![CDATA[Lorem ipsum]]></title>