将xml字符串添加到soap消息中

时间:2015-06-03 17:42:50

标签: java xml soap

使用此xml文件创建soap消息:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ord="http://xmlns.oracle.com/communications/ordermanagement">
   <soapenv:Header/>
   <soapenv:Body>
      <ord:UpdateOrder>
         <ord:OrderId>26</ord:OrderId>
         <ord:View>BroadbandDSLOrderCreation</ord:View>

         <ord:UpdatedOrder>

         </ord:UpdatedOrder>

      </ord:UpdateOrder>
   </soapenv:Body>
</soapenv:Envelope>

需要在UpdatedOrder标记之间插入的XML字符串。

<_root>
<DslOrder index="1422888817752">
<SubscriberInfo index="1422888817756">
<Address index="1422888817758">
<City index="1422888817761">OTT</City>
<PostalCode index="1422888817760">101</PostalCode>
<Street index="1422888817759">333</Street>
</Address>
<PhoneNumber index="1422888817762">438</PhoneNumber>
<Name index="1422888817757">xyz</Name>
</SubscriberInfo>
</DslOrder>
</_root>    

肥皂信息的输出必须如下:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ord="http://xmlns.oracle.com/communications/ordermanagement">
   <soapenv:Header/>
   <soapenv:Body>
      <ord:UpdateOrder>
         <ord:OrderId>26</ord:OrderId>
         <ord:View>BroadbandDSLOrderCreation</ord:View>
         <ord:UpdatedOrder>
          <_root>
    <DslOrder index="1422888817752">
    <SubscriberInfo index="1422888817756">
    <Address index="1422888817758">
    <City index="1422888817761">OTT</City>
    <PostalCode index="1422888817760">101</PostalCode>
    <Street index="1422888817759">333</Street>
    </Address>
    <PhoneNumber index="1422888817762">438</PhoneNumber>
    <Name index="1422888817757">xyz</Name>
    </SubscriberInfo>
    </DslOrder>
        </_root>
         </ord:UpdatedOrder>
      </ord:UpdateOrder>
   </soapenv:Body>
</soapenv:Envelope>

需要将XML字符串添加到soap信封。

如何将该XML字符串添加到soap信封中,如输出?

所示

我正在将xml文件转换为soap message.Now我需要将xml字符串添加到soap消息(在相同的标记之间)。请帮帮我

1 个答案:

答案 0 :(得分:0)

您可能希望查看使用<![CDATA[]]>标记,以便邮件不会尝试解析您的有效内容(恰好是XML)。

例如:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ord="http://xmlns.oracle.com/communications/ordermanagement">
<soapenv:Header/>
<soapenv:Body>
    <ord:UpdateOrder>
        <ord:OrderId>26</ord:OrderId>
        <ord:View>BroadbandDSLOrderCreation</ord:View>
        <ord:UpdatedOrder>
            <![CDATA[
              <_root>
<DslOrder index="1422888817752">
<SubscriberInfo index="1422888817756">
<Address index="1422888817758">
<City index="1422888817761">OTT</City>
<PostalCode index="1422888817760">101</PostalCode>
<Street index="1422888817759">333</Street>
</Address>
<PhoneNumber index="1422888817762">438</PhoneNumber>
<Name index="1422888817757">xyz</Name>
</SubscriberInfo>
</DslOrder>
            </_root>
             ]]>
        </ord:UpdatedOrder>
    </ord:UpdateOrder>
</soapenv:Body>

如果要使用Java库(例如jax-ws)进行SOAP调用,库将为您处理此问题(您只需按原样发送XML有效内容)。