使用LINQ to XML来解析SOAP消息

我正在使用C#在Linq中加速XML并试图解析以下消息并且似乎没有取得多大进展。 这是soap消息,我不确定我是否需要使用命名空间。 这是我想要格式化的SOAP消息。 任何帮助将不胜感激。 我试图提取值。 谢谢。

     1000 test I07  17090769 Y     

如果这是与SOAP服务交互,请使用添加服务引用或wsdl.exe 。

如果这只是解析XML,假设您已将SOAP响应放入名为soapDocument的XDocument中:

 XNamespace ns = "http://ASR-RT/"; var objIns = from objIn in soapDocument.Descendants(ns + "objIn") let header = objIn.Element(ns + "transactionHeaderData") select new { WebsiteId = (int) header.Element(ns + "intWebsiteId"), VendorData = header.Element(ns + "strVendorData").Value, VendorId = header.Element(ns + "strVendorId").Value, CCN = (int) objIn.Element(ns + "intCCN"), SurveyResponse = objIn.Element(ns + "strSurveyResponseFlag").Value, }; 

这将为您提供一个IEnumerable的匿名类型,您将在该方法中作为完全强类型的对象处理。

使用Linq的XDocument通过调用XDocument.Load()或类似方法来加载XML文本。 然后你可以使用像这样的函数遍历xdoc根目录下的元素树

 foreach (var x in xdoc.Elements("Lookup")) {...} 

您可以将XML转换为XElement,然后执行以下操作:

 rsp.Descendants("Lookup").ToList(); 

要么

rsp.Descendants( “objIn”)ToList();

我认为这是最好的方法。 我认为XElement是最好的选择。