首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否从web服务响应中删除结果包装?

是否从web服务响应中删除结果包装?
EN

Stack Overflow用户
提问于 2015-07-17 02:53:08
回答 1查看 645关注 0票数 0

我有一个asmx web服务,它有一个web方法。

代码语言:javascript
复制
    [WebMethod(Description = "Request for Read Stop Sale")]
    [SoapHeader("Security", Direction = SoapHeaderDirection.In)]
    [SoapDocumentMethod(ParameterStyle=SoapParameterStyle.Bare,Action="OTA_HotelBookingRule")]
    public XmlDocument ReadStopSales()
    {
    ....
     I am getting some details from database and converting and transforming it into
    XML and then putting it into XmlDocument object and returning it...
    XmlResultDocument.LoadXml(results.ToString());
     return XmlResultDocument;
    }

我加载到XmlResultDocument中的结果具有根元素

我通过调用SoapUI来测试这个方法,它给了我以下结果:

代码语言:javascript
复制
<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>
      <ReadStopSalesResult xmlns="http://localhost:6092/connectAPI.asmx">
         <OTA_HotelBookingRuleRS xmlns="">
            <RuleMessage HotelCode="5">
               <StatusApplication RatePlanCode="579_1" InvTypeCode="579" RatePlanCategory="BB"/>
               <BookingRules>
                  <BookingRule Start="2015-07-15" End="2015-07-15">
                     <RestrictionStatus Restriction="Master" Status="Open"/>
                  </BookingRule>
                  <BookingRule Start="2015-07-16" End="2015-07-16">
                     <RestrictionStatus Restriction="Master" Status="Open"/>
                  </BookingRule>
                  <BookingRule Start="2015-07-17" End="2015-07-17">
                     <RestrictionStatus Restriction="Master" Status="Open"/>
                  </BookingRule>
                  <BookingRule Start="2015-07-18" End="2015-07-18">
                     <RestrictionStatus Restriction="Master" Status="Open"/>
                  </BookingRule>
                  <BookingRule Start="2015-07-19" End="2015-07-19">
                     <RestrictionStatus Restriction="Master" Status="Open"/>
                  </BookingRule>
                  <BookingRule Start="2015-07-20" End="2015-07-20">
                     <RestrictionStatus Restriction="Master" Status="Open"/>
                  </BookingRule>
                  <BookingRule Start="2015-07-21" End="2015-07-21">
                     <RestrictionStatus Restriction="Master" Status="Open"/>
                  </BookingRule>
                  <BookingRule Start="2015-07-22" End="2015-07-22">
                     <RestrictionStatus Restriction="Master" Status="Open"/>
                  </BookingRule>
                  <BookingRule Start="2015-07-23" End="2015-07-23">
                     <RestrictionStatus Restriction="Master" Status="Open"/>
                  </BookingRule>
                  <BookingRule Start="2015-07-24" End="2015-07-24">
                     <RestrictionStatus Restriction="Master" Status="Open"/>
                  </BookingRule>
                  <BookingRule Start="2015-07-25" End="2015-07-25">
                     <RestrictionStatus Restriction="Master" Status="Open"/>
                  </BookingRule>
                  <BookingRule Start="2015-07-26" End="2015-07-26">
                     <RestrictionStatus Restriction="Master" Status="Open"/>
                  </BookingRule>
               </BookingRules>
            </RuleMessage>
         </OTA_HotelBookingRuleRS>
      </ReadStopSalesResult>
   </soap:Body>
</soap:Envelope>

我不需要元素

在这个元素中,您可以在C#代码中看到"ReadStopSales“是see方法的名称。

我希望我的结果如下:

代码语言:javascript
复制
<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>
         <OTA_HotelBookingRuleRS xmlns="">
            <RuleMessage HotelCode="5">
               <StatusApplication RatePlanCode="579_1" InvTypeCode="579" RatePlanCategory="BB"/>
               <BookingRules>
                  <BookingRule Start="2015-07-15" End="2015-07-15">
                     <RestrictionStatus Restriction="Master" Status="Open"/>
                  </BookingRule>
                  <BookingRule Start="2015-07-16" End="2015-07-16">
                     <RestrictionStatus Restriction="Master" Status="Open"/>
                  </BookingRule>
                  <BookingRule Start="2015-07-17" End="2015-07-17">
                     <RestrictionStatus Restriction="Master" Status="Open"/>
                  </BookingRule>
                  <BookingRule Start="2015-07-18" End="2015-07-18">
                     <RestrictionStatus Restriction="Master" Status="Open"/>
                  </BookingRule>
                  <BookingRule Start="2015-07-19" End="2015-07-19">
                     <RestrictionStatus Restriction="Master" Status="Open"/>
                  </BookingRule>
                  <BookingRule Start="2015-07-20" End="2015-07-20">
                     <RestrictionStatus Restriction="Master" Status="Open"/>
                  </BookingRule>
                  <BookingRule Start="2015-07-21" End="2015-07-21">
                     <RestrictionStatus Restriction="Master" Status="Open"/>
                  </BookingRule>
                  <BookingRule Start="2015-07-22" End="2015-07-22">
                     <RestrictionStatus Restriction="Master" Status="Open"/>
                  </BookingRule>
                  <BookingRule Start="2015-07-23" End="2015-07-23">
                     <RestrictionStatus Restriction="Master" Status="Open"/>
                  </BookingRule>
                  <BookingRule Start="2015-07-24" End="2015-07-24">
                     <RestrictionStatus Restriction="Master" Status="Open"/>
                  </BookingRule>
                  <BookingRule Start="2015-07-25" End="2015-07-25">
                     <RestrictionStatus Restriction="Master" Status="Open"/>
                  </BookingRule>
                  <BookingRule Start="2015-07-26" End="2015-07-26">
                     <RestrictionStatus Restriction="Master" Status="Open"/>
                  </BookingRule>
               </BookingRules>
            </RuleMessage>
         </OTA_HotelBookingRuleRS>
   </soap:Body>
</soap:Envelope>

请帮助如何删除默认的结果元素....

EN

Stack Overflow用户

发布于 2015-07-17 12:17:17

您可以尝试实现WebserviceHandler并更改响应消息。示例代码将如下所示:

代码语言:javascript
复制
public class ChangeMessageHandler implements SOAPHandler<SOAPMessageContext> {

@Override
public boolean handleMessage(SOAPMessageContext context) {

    Boolean outbound = (Boolean) context.get(MessageContext.MESSAGE_OUTBOUND_PROPERTY);
    if (!outbound) {
        try {
           SOAPMessage soapMessage = MessageFactory.newInstance().createMessage();  
           soapMessage.getSOAPBody().appendChild(context.getMessage().getSOAPBody().getFirstChild().getFirstChild());
           context.setMessage(soapMessage); 
        } 
        catch (Exception ex) {

        }
    }        
    return true;
} }

基本上,我正在尝试获取第二个节点并将其添加到新消息中。

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31462277

复制
相关文章

相似问题

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