我正在 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/