为什么我的所有XML都被转义?

时间:2012-06-07 03:19:30

标签: c# php xml web-services nusoap

长时间听众,第一次来电。

以下是我的进展......

创建了一个PHP Web服务,发送简单数据类型如string,int没有问题... 返回字符串或int没问题。

现在我想以XML格式返回数据。

所以我创建了一个DomDocument并填写了所有数据......

然后我把它退出服务。

在我的客户端,当我将对象作为XML文档加载时,我得到一个关于我的root没有正确格式化的错误。

我看看我的调试,所有“特殊”字符都已被转义。

我做了一个黑客并替换了“<”用>等等。

然后我可以加载结果。

这似乎不对,我应该能够在格式正确的情况下返回XML。

所以我猜这是我如何定义xml对象???

有人可以发布定义xml对象返回的PHP示例吗?

我已经找了好几天了,我找不到从MySql中选择数据的简单示例,将其转换为XML,然后将XML返回给客户端。

3 个答案:

答案 0 :(得分:1)

I did a hack and replaced "<" with > and so on.

没有关于替换.XML有害字符的黑客行为,这是规则。 阅读有关此类字符的here。 相反,您可以使用此代码:

function replace_characters_for_xml(&$str)
{
   $str = str_replace("&","&amp;",$str);
   $str = str_replace(">","&gt;",$str);
   $str = str_replace("<","&lt;",$str);
   $str = str_replace("'","&apos;",$str);
   $str = str_replace('"',"&quot;",$str);
}
...
replace_characters_for_xml($string);

答案 1 :(得分:0)

  

所以我创建了一个DomDocument并填写了所有数据......

我怀疑你在这里所做的一切都做错了。

答案 2 :(得分:0)

我找到了一个将MySql数据存储到XML中的不同代码示例。 这就是我所寻找的结果。

Using PHP DOM to create XML files from MySQL data