Flex:通过POST将带有HTML实体的XML内容发送到PHP

时间:2012-09-24 18:21:40

标签: php xml flex post

我开发了一个桌面AIR应用程序,它将数据本地保存为XML文件。 当用户单击按钮时,xml内容将发布到PHP应用程序,在该应用程序中处理(插入或更新)数据。

问题是,当我发布一些包含html实体的数据时,例如&或>,不解析xml内容。

我正在使用这个类来解析xml内容: https://sites.google.com/site/floweringmind/home

这是输入:

<companie_ps>
  <denCompanie>Company &amp; Friends</denCompanie>
  <email>abc@abc.ro</email>
</companie_ps>

这是想要的结果:

Array
(
    [0] => Array
        (
            [denCompanie] => Company & Friends
            [email] => abc@abc.ro
        )

)

这是实际结果:

Array
(
    [0] => Array
        (
            [denCompanie] => Array
                (
                    [@content] => Company
                )

        )

)

错误消息:第5行第28行(字节索引63)的XML解析错误68'XML_ERR_NAME_REQUIRED'。

编辑:问题来自帖子是将xml标签内容中的html实体转换为实际字符。所以,我使用正则表达式用他们的html实体替换特殊字符。这是代码,以防有人需要它:

function _handle_match($match)
{
  return '<' . $match[1] . '>' . htmlentities($match[2]) . '</' . $match[3] . '>';
}

$pattern = "/\<(.*)\>(.*?)\<\/(.*)\>/imU";
$xml = preg_replace_callback($pattern, '_handle_match', $xml);

0 个答案:

没有答案