public static void Main()
string xml = @"<DatiBeniServizi>
<NumeroLinea>1</NumeroLinea>
<Descrizione>Ns. Ordine 23-OV107270 del 03/05/23</Descrizione>
<Quantita>0.00</Quantita>
<PrezzoUnitario>0.00</PrezzoUnitario>
<PrezzoTotale>0.00</PrezzoTotale>
<AliquotaIVA>22.00</AliquotaIVA>
<NumeroLinea>2</NumeroLinea>
<CodiceTipo>ART</CodiceTipo>
<CodiceValore>8014211143410</CodiceValore>
<CodiceTipo>EAN</CodiceTipo>
<CodiceValore>14341</CodiceValore>
XDocument xDocument = XDocument.Parse(xml);
var results = xDocument.Descendants("DettaglioLinee").Select(x => new
CodiceArt = (string)x.Elements("CodiceArticolo").Elements("CodiceValore").FirstOrDefault()?.Value.ToUpper(),
Descrizione = (string)x.Elements("Descrizione").FirstOrDefault()?.Value,
CodiceTipos = x.Elements("CodiceArticolo")?.Elements("CodiceTipo").Select(x => x.Value).ToList()
Console.WriteLine(JsonConvert.SerializeObject(results, Newtonsoft.Json.Formatting.Indented));