public Envio(int id) { XDocument xml = XDocument.Parse(LoadFromService(id)); ID = xml.Element("envio") .Element("de").Value; De = xml.Element("envio") .Element("de").Value; Para = xml.Element("envio") .Element("para").Value; Fecha = xml.Element("envio") .Element("fecha").Value; Descripcion = xml.Element("envio") .Element("descripcion").Value; } /* * <xml> * <envio id="123"> * <de>Sergio</de> * <para>Gabriela</para> * <fecha>10/10/2010</fecha> * <descripcion>Una moto de 30kg.</descripcion> * </envio> * </xml> */
Я хочу извлечь каждый бит информации, а также атрибут ID корневого тега Envio.
Любая помощь?
Что ж, похоже, вы ничего не делаете с атрибутами (id).
Также; вместо .Value предпочтительным является приведение, поскольку оно будет обрабатывать пропущенные данные, возвращая ноль.
SomeProp = (string)node.Element("foo");
Ваша переменная xml является объектом XDocument, который содержит один тег <xml>.
xml
<xml>
Следовательно, xml.Element("envio") равно нулю.
xml.Element("envio")
Вместо этого вам нужно написать xml.Root.Element("envio").
xml.Root.Element("envio")