php - 使用带有特殊字符的 SimpleXML 在 PHP 中创建 XML

标签 php mysql xml apache-flex special-characters

我正在 flex 3 中开发项目,用户输入一些文本,这些文本将存储在 mysql 数据库中并稍后显示。我使用 XML 将数据从 Flex 传输到 php,反之亦然。 php 中的 SimpleXMLElement 用于创建 XML。问题是 XML 在特殊字符上中断。

这里是示例代码:

灵活:

var someXML:XML = <root><data>somedata</data><data>...</data> ... </root>
var data:Object = {};
data.xmlData = someXML;

saveDataService.send(data);

这里somedata是用户输入的数据。在 php 中,我使用 SimpleXMLElement 提取 someXML 并将其存储到 mysql。到这里为止都没有问题。即使 somedata 有特殊字符,它也可以正常工作并且数据可以正确存储。

现在,在另一种情况下,从数据库获取数据并在 Flex 中显示,来自 php 的响应因错误而中断:

SimpleXMLElement::addChild() [simplexmlelement.addchild]: unterminated entity reference

我尝试在php中使用urlencode,在flex中使用decodeURI函数,但解码后的字符串不一样,少数特殊字符仍然是%xy 解码后。

如何解决这个问题?

最佳答案

在 XML 中,& 启动一个实体。 ; 结束它。当您有一个文字 & 时,您将获得一个未终止的实体引用。将所有还不是实体的 & 更改为 &,例如不要将 > 更改为 >。或者将一些数据放入 CDATA 部分。

关于php - 使用带有特殊字符的 SimpleXML 在 PHP 中创建 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6915098/

相关文章:

php - Laravel API 架构 - 最佳实践

javascript - 进行 php ajax 类型回调的正确方法

php - 如何使用php中的下一个和上一个按钮从mysql读取数据

php - 更新语句不更新表而是将新条目插入表中

xml - 究竟要在 XMLDSIG 上消化和签署什么以及如何消化? (或者,OSX 本地客户端与服务器上计算的 XMLDSIG 不匹配)

sql-server - SQL Server - 使用 UTF-8 编码定义 XML 类型的列

php - 如何同时获取最大值及其行?

MySql 删除行并将其添加到另一个表?

c# - 如何从 XElement 获取字符串形式的 XML 片段?

php - JSON 响应字符串以 "null"结尾