Silverlight: ошибка десериализации XML
-
26-09-2019 - |
Вопрос
Я создаю приложение Silverlight 4. Я пытаюсь использовать XElement для чтения XML. Следующий код не работает для меня:
string data = @"<?xml version='1.0'>
<Data>
<TopicGroups>
<TopicGroup>
<Name>Documents</Name>
<Id>0</Id>
</TopicGroup>
</TopicGroups>
<Topics>
<Topic>
<Name>Foo stuff</Name>
<Id>1</Id>
<GroupId>0</GroupId>
</Topic>
</Topics>
<PlumFiles>
<PlumFile>
<Name>moons</Name>
<Body>we're going to the moon</Body>
<TypeExtension>docx</TypeExtension>
<Author>Frodo</Author>
<CreatedOn>2010-11-18T00:00:00-05:00</CreatedOn>
</PlumFile>
</PlumFiles>
</Data>";
// crash here
XElement xml = new XElement(data);
Исключение:
System.Xml.XmlException: Name cannot begin with the '<' character, hexadecimal value 0x3C.
at System.Xml.XmlConvert.VerifyNCName(String name, ExceptionType exceptionType)
at System.Xml.XmlConvert.VerifyNCName(String name)
at System.Xml.Linq.XName..ctor(XNamespace ns, String localName)
at System.Xml.Linq.XNamespace.GetName(String localName, Int32 index, Int32 count)
at System.Xml.Linq.XNamespace.GetName(String localName)
at System.Xml.Linq.XName.Get(String expandedName)
at System.Xml.Linq.XName.op_Implicit(String expandedName)
at PlumPudding.MainPage.MainPage_Loaded(Object sender, RoutedEventArgs e)
at MS.Internal.CoreInvokeHandler.InvokeEventHandler(Int32 typeIndex, Delegate handlerDelegate, Object sender, Object args)
at MS.Internal.JoltHelper.FireEvent(IntPtr unmanagedObj, IntPtr unmanagedObjArgs, Int32 argsTypeIndex, Int32 actualArgsTypeIndex, String eventName)} System.Exception {System.Xml.XmlException}
Что я могу сделать не так?
Решение
Вы должны использовать: -
XElement xml = XElement.Parse(data);
Конструктор XElement ожидает XName
Чтобы определить простое имя элемента, чтобы построить (или строку, которая будет идентично преобразована в XName
).
Не связан с StackOverflow