var subset = from item in document.Descendants("Id")
where item.Value == itemId.ToString()
select new PurchaseItem() {
Id = int.Parse(item.Parent.Element("Id").Value),
Name = item.Parent.Element("Name").Value,
Description = item.Parent.Element("Description").Value,
Price = int.Parse(item.Parent.Element("Price").Value)
};
La estructura del XML es el siguiente:¿Linq-XML siempre es tan desordenado?
<Items>
<Item>
<Id></Id>
<Name></Name>
<Description></Description>
<Price></Price>
</Item>
</Items>
Id, y el precio son ambos valores enteros. El nombre y la descripción son cadenas.
He encontrado Linq to XML
ideal para lo que lo he usado, esto es solo un fragmento. Pero, por otro lado, tengo la sensación de que debería o podría ser más limpio. El casting parece el problema más obvio en este fragmento.
¿Algún consejo?
trate de hacer esto utilizando XmlReader, o incluso el viejo XML DOM, y volverá a evaluar su vista de 'desordenado'. ;) – Noldorin
La sintaxis aquí sería mucho más clara con la dinámica. Imagine 'ID = item.Id', etc. –
@Noldorin - 'untidy' sería más adecuado que eso;) Mi trabajo con XMLReader en el pasado, ahora que era desordenado. – Finglas