Yii SOAP Web服务返回XML

时间:2011-04-15 14:27:45

标签: php xml rest soap yii

我正在尝试使用PHP和Yii框架编写Web服务API。这意味着我将使用SOAP Web服务,因为Yii不直接支持RESTful Web服务。

我想以XML格式返回结果,作为字符串(这可能是愚蠢的,但我正在使用相当繁琐的数据类型,这会使尝试使用它们的Web服务客户端的生活变得更加困难)。我面临的问题是我返回的XML包含标签,这导致Web服务客户端无法正确读取字符串。

例如,我可以在我的一个Web服务中返回此字符串:

hello

但不是这个字符串:

<hello>

(客户端读取空字符串)

那么,SOAP Web服务是否有办法将XML文档作为字符串返回(通常,或者特别是使用Yii)?

3 个答案:

答案 0 :(得分:1)

这应该由框架完成(虽然不知道Yii),但是因为它似乎不能自动为你工作,所以首先尝试转义数据:

$data_to_send = htmlspecialchars($data_to_send);

如果Yii不对数据进行编码,则客户端在从SOAP库中获取数据时将看到正确的输出(原始XML字符串)。但是,如果Yii对数据进行编码,它将进行双重编码,这可能不是您想要的,但如果它对它进行编码,那么首先应该没有这个问题......

答案 1 :(得分:1)

如果您的数据包含也是XML标记的字符,则可以使用CDATA选项。

<value><![CDATA[<hello>]]></value>

答案 2 :(得分:0)

请不要使用肥皂。如果有史以来最糟糕的技术就是一个(参见关于SO的众多帖子)。 Yii现在支持REST(完全从1.17开始)。只需使用JSON格式。您是否需要从客户端删除或插入?