Попытка десериализации списка. Im получаю следующее сообщение об ошибке:XmlSerializer Deserializing List Без пространства имен
System.InvalidOperationException: There is an error in XML document (1, 2). ---> System.InvalidOperationException: was not expected.
пила другие quesitons как: {"<user xmlns=''> was not expected.} Deserializing Twitter XML, но это не решает мою проблему либо.
Это Xml Sample
<authorizations>
<id>111</id>
<name>Name 1</name>
<Lists>
<List>
<id>1</id>
<id>2</id>
</List>
</Lists>
</authorizations>
<authorizations>
<id>222</id>
<name>Name 2</name>
<List />
</authorizations>
<authorizations>
<id>333</id>
<name>Name 3</name>
<List />
</authorizations>
Класс создаются следующим образом:
public class Authorization
{
[XmlElement("id")]
public string Id{ get; set; }
[XmlElement("name")]
public string Name{ get; set; }
[XmlArray("Lists")]
[XmlArrayItem("List")]
public List[] Items{ get; set; }
}
public class List
{
[XmlElement("id")]
public string Id{ get; set; }
}
public class AuthorizationList
{
[XmlArray("authorizations")]
public Authorization Authorizations{ get; set; }
}
попытался изменить список к XmlArray, XmlArrayItem или элемент. но все равно получаю ту же ошибку, когда я десериализую.
десериализации Пример кода:
public static T FromXml<T>(string xmlString)
{
T obj = default(T);
if (!string.IsNullOrWhiteSpace(xmlString))
{
using (var stringReader = new StringReader(xmlString))
{
var xmlSerializer = new XmlSerializer(typeof(T));
obj = (T)xmlSerializer.Deserialize(stringReader);
}
}
return obj;
}
Это не * действительный * (ожидаемый 'XmlSerializer') xml. Действительный начинается с ' Xml version =" 1.0 "?>'. Вы можете попробовать добавить эту строку до вызова 'Deserialize()'. Другое дело - отсутствие контейнера (обозначенного символом 'XmlRootAttribute') для элементов массива, см., Например, [Это] (http://stackoverflow.com/q/126155/1997232). – Sinatr
'XmlSerializer' может обрабатывать XML, в котором отсутствует декларация XML. Однако XML должен иметь один и только один [корневой элемент] (https://en.wikipedia.org/wiki/Root_element). Этот XML имеет несколько корневых элементов, поэтому совсем не XML. – dbc
Попробуйте добавить корневой элемент и сообщите об этом.Спасибо за быстрые ответы – RSmart