У меня есть некоторые данные в файле XML, который читается через поток.У меня есть доступ к объекту потока, с помощью которого я должен десериализовать данные и заполнить список.Класс моей модели приведен ниже
[XmlRoot("invoices")]
public class Invoice
{
[XmlElement(ElementName = "description", IsNullable= true)]
public string Description { get; set; }
[XmlElement(ElementName = "invoice_date")]
public string InvoiceDate { get; set; }
[XmlElement(ElementName = "invoice_number")]
public string InvoiceNumber { get; set; }
[XmlElement(ElementName = "date_due")]
public string DateDue { get; set; }
[XmlElement(ElementName = "amount")]
public string Amount { get; set; }
}
А ниже приведен фрагмент метода, который я использую для чтения данных
public List<Invoice> ParseRecords(Stream stream)
{
List<Invoice> invoices = new List<Invoice>();
try
{
stream.Position = 0;
XmlSerializer serializer = new XmlSerializer(typeof(List<Invoice>));
invoices = (List<Invoice>)serializer.Deserialize(stream);
}
catch (Exception ex)
{
log.Error(ex);
}
return invoices;
}
Данные XML содержат счета с корневым тегом с именем«счета-фактуры» и несколько дочерних записей с тегом «счет-фактура».Для корневого элемента не определено пространство имен, и это невозможно сделать, поскольку данные XML получены из внешнего источника.Данные XML в правильном формате.Проблема, с которой я сталкиваюсь, заключается в том, что при выполнении метода Deserialize () он выдает исключение, говорящее об ошибке в документе XML (2, 2).и внутреннее исключение говорит, что {"не ожидалось".}
Может кто-нибудь помочь мне выяснить, что здесь не так?