using System.Text.RegularExpressions;
public static void Main()
string xmlContent="<ShowInvoiceXML1><EAIHeader EAIDescriptorID=\"PBLX\" EAIHeaderVersion=\"0001\" EAIServiceName=\"ShowInvoice\" EAIServiceVersion=\"1\" EAICreationDateTime=\"20230907090842\" EAIIssuingIdentifier=\"S0DALLXX\" EAIReplyToService=\"\" /><Body><InvoiceHeader InvoiceID=\"652150851\" SupplierType=\"W\" ShipFromFacility=\"4105\" ShipFromPrimaryFacility=\"4105\" ShipToFacility=\"3933\" ShipDate=\"20230907\" ShipTime=\"090834\" DeliveryDate=\"20230823\" InvoiceDate=\"20230907\" PlanDate=\"20230907\" PlanTime=\"085252\" RouteID=\"1001\" StopID=\"1\" ShipDoorID=\"224\" ShipStagingID=\"\" OrderType=\"CHRT\" OrderTypeDescription=\"CHART\" TotalShipQty=\"6\" TotalCost=\"332.70\" TotalRetail=\"384.30\" TotalLineItems=\"1\" LoadCloseDate=\"20230907\" LoadCloseTime=\"090834\" InvoiceType=\"REG\" DEAOrderNumber=\"\"><InvoiceDetail LineNumber=\"1\" ItemCode=\"8\" WhseItemCode=\"3\" OrderQty=\"6\" ShipQty=\"6\" ReasonCode=\"SP\" ReasonCodeDescription=\"Shipped Product\" ShipWeight=\"105.30\" ShipCube=\"4.920\" VarWeightIndicator=\"N\" UnitCost=\"1.58\" UnitRetail=\"1.83\" CaseCost=\"55.45\" CaseRetail=\"64.05\" ExtendedCost=\"332.70\" ExtendedRetail=\"384.30\" RetailSaleQty=\"1\" OnSaleFlag=\"Y\" PimsSDCatFam=\"111702\" ChargeSubDept=\"11\" UnitsInPack=\"35\" SizeFactor=\"1.0000\" InvoiceSortCode=\"A\" TotQtySubstituted=\"\" SubType=\"N\" SubForItem=\"\" SubFactor=\"\" SubSequence=\"\" OrderID=\"2868\" OrderDetailID=\"1\" OrderDate=\"20230823\" OrderTime=\"110800\" ExtOrderID=\"CHP0NN5YF7TI5F0GO04500\" OrgOrdQty=\"6\" BuyerAdjCode=\"\" /></InvoiceHeader></Body></ShowInvoiceXML1>";
Console.WriteLine(xmlContent);
LogInvoiceDetailInfoFromMQXml(xmlContent);
private static void LogInvoiceDetailInfoFromMQXml(string xmlContent)
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(xmlContent);
var invoiceHeaders = xmlDoc.SelectNodes("//InvoiceHeader");
foreach (XmlNode invoiceHeader in invoiceHeaders)
string invoiceId = invoiceHeaders[0].Attributes["InvoiceID"].Value;
int invoiceDetailsCount = invoiceHeader.SelectNodes("//InvoiceDetail").Count;
Console.WriteLine($"Invoice ID: {invoiceId}, Invoice Details Count:{invoiceDetailsCount}");
Console.WriteLine($"An error has occurred when calling MQBO.LogInvoiceDetailInfoFromMQXml({xmlContent}).");