无法将SOAP请求的XML解析为Dataset

时间:2014-09-02 11:48:22

标签: c# xml web-services soap

我正在忙着编写一个Web服务,它将接受最多5个表信息的SOAP REQUEST。

这是我提出的有效SOAP REQUEST,但为了简单起见,我删除了4个表的XML表。

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/">
   <soapenv:Header/>
   <soapenv:Body>
      <tem:EchoSoapRequest1>         
         <Route>  
            <Routecode>200906230000</RouteCode>
            <Date>23/06/2009</Date> 
            <type>1</type>
            <Depot_Code>'hh'</Depot_Code>
        </Route>
      </tem:EchoSoapRequest1>
   </soapenv:Body>
</soapenv:Envelope>

现在,在我的web服务中,这是我尝试在Route表中读取数据集。所有工作到目前为止,我可以看到变量xmlSoapRequest中的整个REQUEST。我需要去除每个表并保存到他们自己的数据集,这样我就可以操作,然​​后只需将代码返回给客户端程序。

var xmlPayload =   xmlSoapRequest.SelectSingleNode("//Route");                  
DataSet ds = new DataSet();
ds.ReadXml(xmlPayload.innerxml); 

1 个答案:

答案 0 :(得分:0)

我明白了:)

   var xmlPayload = xmlSoapRequest.SelectSingleNode("//Route");        
    DataSet ds = new DataSet();

    XmlDocument xmldoc = new XmlDocument();
    xmldoc.LoadXml(xmlPayload.OuterXml);

    XmlNodeReader xmlread = new XmlNodeReader(xmldoc);
    ds.ReadXml(xmlread);