首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用wsd2php生成的文件的复杂SOAP消息

使用wsd2php生成的文件的复杂SOAP消息
EN

Stack Overflow用户
提问于 2011-01-10 12:32:59
回答 1查看 349关注 0票数 1

问候堆栈溢出。

我一直在使用PHP5的本机扩展修补SOAP客户机。我尝试创建的SOAP消息使用复杂的数据类型。

到目前为止,我已经使用wsdl2php工具(http://www.urdalen.no/wsdl2php/)创建了一个类文件。我已经成功地创建了部分SOAP消息,但是我确信我这样做是不正确的。如下所示:

我想创建的消息:

代码语言:javascript
复制
<soap:Envelope>
 <soap:Body>
  <OTA_HotelAvailRQ Version="1.0" AvailRatesOnly="true" TimeStamp="2010-10-06T16:14:26+08:00">
   <POS>
    <Source>
     <RequestorID ID="test" Type="10"/>
    </Source>
   </POS>
   <AvailRequestSegments>
    <AvailRequestSegment AvailReqType="NonRoom">
     <HotelSearchCriteria AvailableOnlyIndicator="1">
      <Criterion>
       <HotelRef HotelCode="PCBCMS"/>
       <StayDateRange Start="2010-10-06" End="2010-11-06"/>
      </Criterion>
     </HotelSearchCriteria>
    </AvailRequestSegment>
   </AvailRequestSegments>
  </OTA_HotelAvailRQ>
 </soap:Body>
</soap:Envelope>

使用以下代码,我可以生成消息的一部分,但是,当涉及到:

代码语言:javascript
复制
// Hotel Availability
$qOTAhrq = new OTA_HotelAvailRQ();

$qOTAhrq->AvailRequestSegments['AvailRequestSegment'] = array('AvailReqType' => 'NonRoom');
$qOTAhrq->AvailRequestSegments['AvailRequestSegment']['HotelSearchCriteria'] = array();
$qOTAhrq->AvailRequestSegments['AvailRequestSegment']['HotelSearchCriteria']['Criterion'] = array();

以下消息是由上面的代码生成的。哪里出了问题:

代码语言:javascript
复制
<ns1:AvailRequestSegments>
 <ns1:AvailRequestSegment AvailReqType="NonRoom">
   <ns1:HotelSearchCriteria/>
 </ns1:AvailRequestSegment>
</ns1:AvailRequestSegments>

needs to be


<ns1:AvailRequestSegments>
 <ns1:AvailRequestSegment AvailReqType="NonRoom">
   <ns1:HotelSearchCriteria AvailOnlyIndicator="1"/>
 </ns1:AvailRequestSegment>
</ns1:AvailRequestSegments>

希望我的问题足够广泛,能够理解我试图实现的目标。我是否使用了正确的方法来生成xml soap消息,或者我不应该以这种方式使用数组?有没有一种方法可以让我键入下面这样的内容:

$qOTAhrq->AvailRequestSegments->AvailRequestSegment =数组(‘有效请求类型=’非房间‘);

链接:我的类文件:wsdl class file (created by wsdl2php)

请帮助-也许我的信息将来会对其他人有所帮助:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-01-10 12:43:20

我不能完全确定,但我似乎没有找到任何代码段可以评估为:<ns1:HotelSearchCriteria AvailOnlyIndicator="1"/>也许你想要这样的代码,

代码语言:javascript
复制
$qOTAhrq->AvailRequestSegments['AvailRequestSegment']['HotelSearchCriteria'] = array("AvailOnlyIndicator"=>"1");
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4643701

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档