Silverlight: Fehler Deserialisieren XML
-
26-09-2019 - |
Frage
Ich baue eine Silverlight 4 App. Ich versuche, XElement zu verwenden XML zu lesen. Der folgende Code funktioniert nicht für mich:
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);
Die Ausnahme ist:
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}
Was könnte ich falsch machen hier?
Lösung
Sie sollten verwendet werden: -
XElement xml = XElement.Parse(data);
Der XElement Konstruktor wird ein XName
erwarten einfach, den Namen des Elements zu konstruieren, zu definieren (oder eine Zeichenfolge, die auf ein XName
werden implizit konvertiert wird).
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow