Будет ли этот разбор XML работать? - PullRequest
0 голосов
/ 16 августа 2010
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.

Любая помощь?

Ответы [ 2 ]

1 голос
/ 16 августа 2010

Что ж, похоже, вы ничего не делаете с атрибутами (id).

Также; вместо .Value предпочтительным является приведение, поскольку оно будет обрабатывать пропущенные данные, возвращая ноль.

SomeProp = (string)node.Element("foo");
0 голосов
/ 16 августа 2010

Ваша переменная xml является объектом XDocument, который содержит один тег <xml>.

Следовательно, xml.Element("envio") равно нулю.

Вместо этого вам нужно написать xml.Root.Element("envio").

...