using System.Xml.Serialization;
using System.Collections.Generic;
[XmlRoot(ElementName = "Product")]
[XmlElement(ElementName = "StockNumber")]
public string StockNumber { get; set; }
[XmlElement(ElementName = "OpenQuantity")]
public int OpenQuantity { get; set; }
[XmlElement(ElementName = "ShippedQuantity")]
public int ShippedQuantity { get; set; }
[XmlElement(ElementName = "ExtendedPrice")]
public string ExtendedPrice { get; set; }
[XmlElement(ElementName = "ListPrice")]
public string ListPrice { get; set; }
[XmlElement(ElementName = "NetPrice")]
public string NetPrice { get; set; }
[XmlElement(ElementName = "BackorderedQuantity")]
public string BackorderedQuantity { get; set; }
[XmlElement(ElementName = "CreditReason")]
public string CreditReason { get; set; }
[XmlElement(ElementName = "InvoiceLineNumber")]
public string InvoiceLineNumber { get; set; }
[XmlElement(ElementName = "LineComments")]
public string LineComments { get; set; }
[XmlElement(ElementName = "OrderLineNumber")]
public string OrderLineNumber { get; set; }
[XmlElement(ElementName = "PartDescription")]
public string PartDescription { get; set; }
[XmlElement(ElementName = "PartType")]
public string PartType { get; set; }
[XmlElement(ElementName = "TrackingNumber")]
public string TrackingNumber { get; set; }
[XmlElement(ElementName = "UnitOfMeasure")]
public string UnitOfMeasure { get; set; }
[XmlRoot(ElementName = "LineItems")]
public class InvLineItems
[XmlElement(ElementName = "Product")]
public List<InvProduct> Product { get; set; }
[XmlRoot(ElementName = "Invoice")]
[XmlElement(ElementName = "InvoiceNumber")]
public string InvoiceNumber { get; set; }
[XmlElement(ElementName = "InvoiceDate")]
public string InvoiceDate { get; set; }
[XmlElement(ElementName = "InvoiceTotal")]
public string InvoiceTotal { get; set; }
[XmlElement(ElementName = "InvoiceType")]
public string InvoiceType { get; set; }
[XmlElement(ElementName = "Freight")]
public string Freight { get; set; }
[XmlRoot(ElementName = "Order")]
[XmlElement(ElementName = "PONumber")]
public string PONumber { get; set; }
[XmlElement(ElementName = "OrderDate")]
public string OrderDate { get; set; }
[XmlElement(ElementName = "OrderId")]
public string OrderId { get; set; }
[XmlElement(ElementName = "MerchandiseTotal")]
public string MerchandiseTotal { get; set; }
[XmlElement(ElementName = "LineItems")]
public InvLineItems LineItems { get; set; }
[XmlElement(ElementName = "LineItemCount")]
public string LineItemCount { get; set; }
[XmlElement(ElementName = "ShipDate")]
public string ShipDate { get; set; }
[XmlElement(ElementName = "ShipToName")]
public string ShipToName { get; set; }
[XmlElement(ElementName = "ShipToAddress")]
public string ShipToAddress { get; set; }
[XmlElement(ElementName = "ShipToAddress1")]
public string ShipToAddress1 { get; set; }
[XmlElement(ElementName = "ShipToCity")]
public string ShipToCity { get; set; }
[XmlElement(ElementName = "ShipToState")]
public string ShipToState { get; set; }
[XmlElement(ElementName = "ShipToCountry")]
public string ShipToCountry { get; set; }
[XmlElement(ElementName = "ShiptToZip")]
public string ShiptToZip { get; set; }
[XmlElement(ElementName = "RONumber")]
public string RONumber { get; set; }
[XmlElement(ElementName = "Invoice")]
public InvInvoice Invoice { get; set; }
public static void Main()
<PONumber>DKPO123456</PONumber>
<OrderDate>2019-03-08T00:00:00.000-06:00</OrderDate>
<OrderId>A6485004</OrderId>
<MerchandiseTotal>114.75</MerchandiseTotal>
<StockNumber>TO2502188</StockNumber>
<OpenQuantity>1</OpenQuantity>
<ShippedQuantity>1</ShippedQuantity>
<ExtendedPrice>114.75</ExtendedPrice>
<ListPrice>153.00</ListPrice>
<NetPrice>114.75</NetPrice>
<BackorderedQuantity>0</BackorderedQuantity>
<CreditReason></CreditReason>
<InvoiceLineNumber>InvoiceLineNumber</InvoiceLineNumber>
<LineComments></LineComments>
<OpenQuantity>1</OpenQuantity>
<OrderLineNumber></OrderLineNumber>
<PartDescription>HLAMP L/HSG LH;09-12 RAV4 SPORT;JAPAN BUILT;SMOKED LENS</PartDescription>
<PartType>Aftermarket</PartType>
<ShippedQuantity>1</ShippedQuantity>
<TrackingNumber>794665266680</TrackingNumber>
<UnitOfMeasure>EA</UnitOfMeasure>
<LineItemCount>1</LineItemCount>
<ShipDate>2019-03-08T00:00:00.000-06:00</ShipDate>
<ShipToName>FOR AUTOMATION ONLY</ShipToName>
<ShipToAddress>655 GRASSMERE PARK</ShipToAddress>
<ShipToAddress1>655 GRASSMERE PARK</ShipToAddress1>
<ShipToCity>NASHVILLE</ShipToCity>
<ShipToState>TN</ShipToState>
<ShipToCountry>US</ShipToCountry>
<ShiptToZip>37211</ShiptToZip>
<InvoiceNumber>A3961543</InvoiceNumber>
<InvoiceDate>2019-03-08T00:00:00.000-06:00</InvoiceDate>
<InvoiceTotal>161.7</InvoiceTotal>
<InvoiceType>Invoice</InvoiceType>
InvOrder invOrder = new InvOrder();
InvLineItems invItems = new InvLineItems();
XmlSerializer serializer = new XmlSerializer(typeof(InvOrder));
using (TextReader myreader = new StringReader(xmlString))
invOrder = (InvOrder)serializer.Deserialize(myreader);
invItems = invOrder.LineItems;
Console.WriteLine("PO Number " + invOrder.PONumber);
Console.WriteLine("Order Id: " + invOrder.OrderId);
Console.WriteLine("Total: " + invOrder.MerchandiseTotal);
Console.WriteLine("Vendor SKU: " + invOrder.LineItems.Product[0].StockNumber);
Console.WriteLine("Invoice: " + invOrder.Invoice.InvoiceNumber);
Console.WriteLine("Invoice Total: " + invOrder.Invoice.InvoiceTotal);
Console.WriteLine("Freight Cost " + invOrder.Invoice.Freight);