CSharp · Console
using System;
using System.Linq;
using System.Xml.Linq;
using System.Xml.XPath;
public class Program
{
public static void Main()
{
var xml = @"
<ShipmentHeader>
<DocumentID>62017836-1</DocumentID>
<DocumentReference type=""CustomerSuppliedReference"">
<DocumentID>
<ID>10532</ID>
</DocumentID>
</DocumentReference>
<Status>
<Code/>
<Description languageID=""en-us""/>
</Status>
<ActualShipDateTime>2023-06-07T09:16:33-04:00</ActualShipDateTime>
<ShippingMethod>CHEAPEST METHOD W/FIRST CLASS</ShippingMethod>
<DocumentReference type=""TrackingNumber"">
<TrackingNumber>9200190233107605458375</TrackingNumber>
</DocumentReference>
</ShipmentHeader>
";
var doc = XDocument.Parse(xml);
var result1 =
doc.Root
.Elements("DocumentReference")
.Where(e => (string)e.Attribute("type") == "TrackingNumber")
.SelectMany(e => e.Elements("TrackingNumber"))
.Select(e => e.Value);
result1.Dump();
var result2 = doc.XPathSelectElements(
@"/ShipmentHeader/DocumentReference[@type=""TrackingNumber""]/TrackingNumber")
.Select(e => e.Value);
result2.Dump();
}
}