【发布时间】:2011-12-28 00:09:09
【问题描述】:
我正在将soap web 服务从.net 重写为php。默认情况下,php 给我的标签看起来像这样:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://tempuri.org/"><SOAP-ENV:Header><ns1:FindAllCategories/></SOAP-ENV:Header><SOAP-ENV:Body><ns1:FindAllCategoriesResponse><ns1:FindAllCategoriesResult><ns1:ArtistCategoryDto>
等等……
但我需要这个:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><FindAllCategoriesResponse xmlns="http://tempuri.org/"><FindAllCategoriesResult><ArtistCategoryDto>
这类似于这里的问题:PHP AND SOAP. Change envelope 但是我不想像他那样破解它。此外,我正在创建一个将由现有的 iphone 应用程序使用的肥皂服务,而不是使用 PHP 来使用 SoapClient 使用肥皂服务。 iphone 应用程序只解析原始 xml,我现在无法更改 iphone 应用程序。
【问题讨论】:
-
您能具体说说您不喜欢其他解决方案的哪些方面吗?你觉得哪里有缺点? “我只需要这个工作”也很难做到,因为 Iphone App 显然有一个缺点。也许它不是唯一的,所以如果不只是猜测,有人怎么能回答你的问题呢?
-
当然。所以有几个问题。首先,我正在构建一个soap 服务,示例是使用soap 客户端。我根本没有使用 php soap 客户端——应用程序就是客户端。其次,我不喜欢使用 RegEx 破解 xml。我宁愿使用一些本机 api,或者如果绝对必要,使用 xml 解析器来解析命名空间,但我不知道如何获取解析 XML 的响应。该应用程序肯定有一个缺点,因为它没有按照预期的方式使用肥皂。但它的构建方式是因为当时没有好的肥皂解析器。