Comencé a practicar con XML y C# y tengo un mensaje de error de "Hay un error en el documento XML (3,2)". Después de mirar el archivo, no veo nada malo en él (fíjate, probablemente me haya perdido algo porque soy un novato). Estoy usando una aplicación de consola para C# en este momento. Intento devolver una lista de Aventureros y solo una nota al margen, el elemento GEAR es opcional. Aquí es lo que tengo hasta ahora:Deserializar XML al objeto (necesita devolver una lista de objetos)
archivo XML - Prueba1
<?xml version="1.0" encoding="utf-8"?>
<Catalog>
<Adventurer>
<ID>001</ID>
<Name>John Smith</Name>
<Address>123 Fake Street</Address>
<Phone>123-456-7890</Phone>
<Gear>
<Attack>
<Item>
<IName>Sword</IName>
<IPrice>15.00</IPrice>
</Item>
<Item>
<IName>Wand</IName>
<IPrice>20.00</IPrice>
</Item>
</Attack>
<Defense>
<Item>
<IName>Shield</IName>
<IPrice>5.00</IPrice>
</Item>
</Defense>
</Gear>
</Adventurer>
<Adventurer>
<ID>002</ID>
<Name>Guy noone likes</Name>
<Address>Some Big House</Address>
<Phone>666-666-6666</Phone>
<Gear></Gear>
</Adventurer>
</Catalog>
C# Clases
public class Catalog
{
List<Adventurer> Adventurers { get; set; }
}
public class Adventurer
{
public int ID { get; set; }
public string Name { get; set; }
public string Address { get; set; }
public string Phone { get; set; }
public Gear Gear { get; set; }
}
public class Gear
{
public List<Item> Attack { get; set; }
public List<Item> Defense { get; set; }
}
public class Item
{
public string IName { get; set; }
public decimal IPrice { get; set; }
}
Serialize Función - Cuando el problema se produce en la línea 5
Catalog obj = null;
string path = @"C:\Users\Blah\Desktop\test1.xml";
XmlSerializer serializer = new XmlSerializer(typeof(Catalog));
StreamReader reader = new StreamReader(path);
obj = (Catalog)serializer.Deserialize(reader);
reader.Close();
Console.ReadLine();
Consulte "[¿Las preguntas específicas de un idioma deben contener el nombre del idioma en el título?] (Http://meta.stackexchange.com/questions/19190/should-language-specific-questions-contain-the-language) -name-in-the-title) ", donde el consenso es" no, no deberían ". –