private const string failureResponse = @"<SOAP-ENV:Envelope xmlns:SOAP-ENV=""http://schemas.xmlsoap.org/soap/envelope/""><SOAP-ENV:Body><TXLife Version=""2.12.00"" xmlns=""http://ACORD.org/Standards/Life/2""><TXLifeResponse PrimaryObjectID=""Holding_1_1""><TransRefGUID>9150d130-c601-4465-8b1d-8d7ac623c5a3</TransRefGUID><TransType tc=""402"">MIB Update</TransType><TransExeDate>2021-11-26</TransExeDate><TransExeTime>20:02:53Z</TransExeTime><TransMode tc=""2"">ORIGINAL</TransMode><TestIndicator tc=""1"" /><MIBRequest><MIBServiceDescriptor><MIBService tc=""1"">Checking Service</MIBService></MIBServiceDescriptor></MIBRequest><TransResult><ResultCode tc=""5"">Failure</ResultCode><ResultInfo><ResultInfoCode tc=""2004"">Required Element Invalid</ResultInfoCode><ResultInfoDesc>LastName: LastNames must follow the SNMMMM pattern (UWSIT)</ResultInfoDesc></ResultInfo><ResultInfo><ResultInfoCode tc=""2004"">Required Element Invalid</ResultInfoCode><ResultInfoDesc>FirstName: FirstNames must follow the SNMMMM pattern (UWSIT)</ResultInfoDesc></ResultInfo></TransResult><OLifE Version=""2.12.00""><Party id=""Party_1_1""><PartyKey /><Person /></Party><Holding id=""Holding_1_1""><Policy><PolNumber>6000011876</PolNumber><ApplicationInfo><HOAssignedAppNumber /><TrackingID>6000011876</TrackingID></ApplicationInfo><RequirementInfo AppliesToPartyID=""Party_1_1""><ReqCode tc=""648"">MIB Update</ReqCode><RequirementInfoUniqueID>228a9d20-817e-4968-b1ef-0d85d40c33a8</RequirementInfoUniqueID><ReqStatus tc=""11"">Completed</ReqStatus></RequirementInfo></Policy></Holding></OLifE></TXLifeResponse></TXLife></SOAP-ENV:Body></SOAP-ENV:Envelope>";
public static void Main()
var xmlResponse = ReadMibResponse(failureResponse);
GetResultCodeFromMibResponse(xmlResponse);
private static void GetResultCodeFromMibResponse(XmlDocument xmlResponse)
XmlNodeList nodeList = xmlResponse.SelectNodes("//*[local-name()='ResultInfo']");
Console.WriteLine($"{nodeList.Count} nodes");
foreach (XmlNode resultInfo in nodeList)
Console.WriteLine(resultInfo.InnerText);
private static XmlDocument ReadMibResponse(string mibResponse)
var returnedXmlResponse = new XmlDocument();
if (string.IsNullOrWhiteSpace(mibResponse)) return returnedXmlResponse;
var soapDoc = XDocument.Load(new StringReader(mibResponse));
var soapBody = soapDoc.Descendants((XNamespace)"http://schemas.xmlsoap.org/soap/envelope/" + "Body").First().FirstNode;
if (soapBody == null) return returnedXmlResponse;
returnedXmlResponse.LoadXml(soapBody.ToString());
return returnedXmlResponse;