在C#中解析和查询SOAP
我试图解析一个严重命名的SOAP消息(源也可以在这里找到):
0a00f556419041c08d8479fbaad02a3c 5.3.0 1000 Success B08CF7B847DAD89C752334BDEBB69B5B
仅针对上下文,这是MM7提交消息的响应。
如何获得以下值:
TransactionID,StatusCode,StatusText,MessageID
我试过Linq-Xml但是当查询包含像“soapenv:Body”这样的值时没有运气。
如果您正在尝试使用命名空间构建XName
,则需要从XNamespace
和字符串构建它,例如
XNamespace soapenv = "http://schemas.xmlsoap.org/soap/envelope/"; XName body = soapenv + "Body";
然后,当您使用带有Linq-to-XML的XName
“ body
”时,它将匹配文档中的
元素。
您可以执行类似的操作以允许使用命名空间构建其他元素的名称。
有一种更简单的方法。 您可以使用{}表示法直接指定命名空间:
var soap = XElement.Load(soapPath); var transactionID = from e in soap.Descendants("{http://www.3gpp.org/ftp/Specs/archive/23_series/23.140/schema/REL-5-MM7-1-2}TransactionID") select e.Value;
我认为您将需要使用XmlDocument(用于读取XML)和XmlNamespaceManager(用于检索命名空间数据)并使用来自这些对象的XPath查询。