Есть xml
<string xmlns="http://www.webserviceX.NET">
<NewDataSet>
<Table>
<AtomicNumber>1</AtomicNumber>
<ElementName>Hydrogen</ElementName>
<Symbol>H</Symbol>
<AtomicWeight>1.00797</AtomicWeight>
<BoilingPoint>20.400000000000002</BoilingPoint>
<IonisationPotential>13.6</IonisationPotential>
<EletroNegativity>2.2</EletroNegativity>
<AtomicRadius>0.37</AtomicRadius>
<MeltingPoint>14</MeltingPoint>
<Density>0.08375</Density>
</Table>
</NewDataSet>
</string>
а вот этот код
string xml = requst
var serializer = new XmlSerializer(typeof(Parametres));
Parametres result;
using (TextReader reader = new StringReader(xml))
{
result = (Parametres)serializer.Deserialize(reader);
}
при десериализации говорит
"В документе XML(1,2) присутствует ошибка"
P.S. xml валидатором проверял
P.S.S код класса Parametres
using System.Reflection;
namespace PeriodicTable
{
public class Parametres
{
public string AtomicNumber { get; set; }
public string ElementName { get; set; }
public string Symbol { get; set; }
public string AtomicWeight { get; set; }
public string BoilingPoint { get; set; }
public string IonisationPotential { get; set; }
public string EletroNegativity { get; set; }
public string AtomicRadius { get; set; }
public string MeltingPoint { get; set; }
public string Density { get; set; }
}
}
Вам придется добавить классы-обертки для того, чтобы добраться до нужного элемента при десериализации (или вручную вырезать его из XML). Вариант с классами-обертками выглядит примерно так:
[XmlRoot(Namespace = "http://www.webserviceX.NET", ElementName ="string")]
public class Response
{
public NewDataSet NewDataSet { get; set; }
}
public class NewDataSet
{
public Parametres Table { get; set; }
}
public class Parametres
{
public byte AtomicNumber { get; set; }
public string ElementName { get; set; }
public string Symbol { get; set; }
public decimal AtomicWeight { get; set; }
public decimal BoilingPoint { get; set; }
public decimal IonisationPotential { get; set; }
public decimal EletroNegativity { get; set; }
public decimal AtomicRadius { get; set; }
public byte MeltingPoint { get; set; }
public decimal Density { get; set; }
}
string xml = @"
<string xmlns=""http://www.webserviceX.NET"">
<NewDataSet> <Table> <AtomicNumber>1</AtomicNumber> <ElementName>Hydrogen</ElementName> <Symbol>H</Symbol> <AtomicWeight>1.00797</AtomicWeight> <BoilingPoint>20.400000000000002</BoilingPoint> <IonisationPotential>13.6</IonisationPotential> <EletroNegativity>2.2</EletroNegativity> <AtomicRadius>0.37</AtomicRadius> <MeltingPoint>14</MeltingPoint> <Density>0.08375</Density> </Table> </NewDataSet>
</string>";
var serializer = new XmlSerializer(typeof(Response));
Parametres result;
using (TextReader reader = new StringReader(xml))
{
result = ((Response)serializer.Deserialize(reader)).NewDataSet.Table;
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Как нужно правильно написать программу для перехвата причины, по которой HDD выходит из сна? Или как написать программу мониторинга чтения...
Изучая паттерн Singleton столкнулся с тем ,что классическая реализация данного паттерна очень хромает в плане потокобезопасности и что Lazy-реализация...