0

我一直在构建一个返回 XML 代码的 API。例如,API 将返回:

<message>hello, this is a message &amp; it used htmlsepcialchars</message>

我正在使用 file_get_contents() 和 simplexml_load_string() 将返回的信息加载到数组中。

然后我使用 utf8_decode() 将消息转换为接收网站上的友好字符集。但是,我收到以下消息,其中 pin 指向消息中的 & 符号:

Warning: main() [function.main]: unterminated entity reference 

由于与号,消息的其余部分被截断。任何想法如何解决这个问题?

4

3 回答 3

0

似乎您的&符号没有编码,因此要么对其进行双重解码,要么将其放入 CDATA 字段中。

通常像这样的特殊字符应该放在 CDATA 字段中。它省去了编码的麻烦。php DOM 创建函数有你需要的。


$doc->createCDATASection

而且当然 :

http://www.w3schools.com/Xml/xml_cdata.asp

http://fr.php.net/manual/en/function.domdocument-create-cdata-section.php

于 2011-01-11T09:36:38.720 回答
0

嗯,simpleXML 字符串必须是 utf8 编码的,并且值实体应该被转义。你utf_decode()的代码真的有必要吗?

于 2011-01-11T09:37:44.227 回答
0

找到我的答案,用户错误。我基本上是在我的代码中的某个地方再次转义。

于 2011-02-11T10:35:57.413 回答