我正在尝试使用PHP和Yii框架编写Web服务API。这意味着我将使用SOAP Web服务,因为Yii不直接支持RESTful Web服务。
我想以XML格式返回结果,作为字符串(这可能是愚蠢的,但我正在使用相当繁琐的数据类型,这会使尝试使用它们的Web服务客户端的生活变得更加困难)。我面临的问题是我返回的XML包含标签,这导致Web服务客户端无法正确读取字符串。
例如,我可以在我的一个Web服务中返回此字符串:
“hello
”
但不是这个字符串:
“<hello>
”
(客户端读取空字符串)
那么,SOAP Web服务是否有办法将XML文档作为字符串返回(通常,或者特别是使用Yii)?
答案 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格式。您是否需要从客户端删除或插入?