Я пытаюсь десериализации документ XML:Игнорировать внешние элементы, используя XmlSerializer
<?xml version='1.0' encoding='UTF-8'?>
<eveapi version="2">
<currentTime>2013-07-07 07:24:20</currentTime>
<result>
<rowset name="characters" key="characterID" columns="name,characterID,corporationName,corporationID">
<row name="xxxxx" characterID="1234" corporationName="xxxx" corporationID="1234" />
</rowset>
</result>
<cachedUntil>2013-07-07 07:40:39</cachedUntil>
</eveapi>
Моя модель:
[XmlRoot("rowset")]
public class CharacterList
{
public CharacterList() { Characters = new List<Character>(); }
[XmlElement("row")]
public List<Character> Characters { get; set; }
}
public class Character
{
[XmlElement("name")]
private string name { get; set; }
[XmlElement("characterID")]
private int Id { get; set; }
[XmlElement("corporationName")]
private string corporationName { get; set; }
[XmlElement("corporationID")]
private int corporationId { get; set; }
}
Мой десериализации код:
XmlRootAttribute xRoot = new XmlRootAttribute();
xRoot.ElementName = "result";
xRoot.IsNullable = true;
var serializer = new XmlSerializer(typeof(Character), xRoot);
var list = (CharacterList) serializer.Deserialize(output);
Однако я я получаю исключение:
System.InvalidOperationException: There is an error in XML document (2,2).
с внутренним типом:
System.InvalidOperationException: <eveapi xmlns=''> was not expected.
Я уверен, что это из-за внешней информации мне не нужно. Есть ли способ игнорировать его? моя другая мысль заключалась в том, что я мог бы писать классы-оболочки для остальной части схемы, а затем просто игнорировать то, что мне неинтересно. Однако я надеялся, что есть более простой способ. Я застрял на этом какое-то время, любая помощь будет оценена по достоинству.
сериализатору быстрее. – Evgeny