C# Serialize XML-Objekt
Ich versuche, ein serializer XML-Daten in ein Objekt. Ich bin allerdings mit einigen Schwierigkeiten. Ich mitgemacht haben, vielleicht sind online-Buchungen in Bezug auf eine Antwort, aber ich habe nicht in der Lage, um es herauszufinden. Bitte lassen Sie mich erklären:
Ich habe die folgende XML-will ich serialise:
<Import_RootObject>
<Organizations>
<Import_Organization OrgNr="xxxx">
<Events>
<Import_Event StartTime="2012-01-01 09:00:00" EndTime="2012-01-02 12:00:00">
<Players>
<Import_Player PersonNummer="1111" />
<Import_Player PersonNummer="2222" />
<Import_Player PersonNummer="3333" />
<Import_Player PersonNummer="4444" />
</Players>
</Import_Event>
</Events>
</Import_Organization>
</Organizations>
Im mit vier Klassen zur Erfassung dieser XML:
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
[XmlRoot("Import_RootObject")]
public class Import_RootObject
{
[XmlArray("organizations")]
[XmlArrayItem("organizations")]
public List<Import_Organization> Organizations { get; set; }
}
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
public class Import_Organization
{
[XmlAttribute("orgnr")]
public string OrgNr { get; set; }
[XmlArray("events")]
[XmlArrayItem("events")]
public List<Import_Event> Events { get; set; }
}
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
public class Import_Event
{
[XmlAttribute("starttime")]
public DateTime StartTime { get; set; }
[XmlAttribute("endtime")]
public DateTime EndTime { get; set; }
[XmlArray("players")]
[XmlArrayItem("players")]
public List<Import_Player> Players { get; set; }
}
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
public class Import_Player
{
[XmlAttribute]
public string PersonNummer { get; set; }
}
Den code, den ich verwenden Deserialisieren ist:
XmlSerializer serializer = new XmlSerializer(typeof(Import_Organization));
Import_RootObject ei = (Import_RootObject)serializer.Deserialize(new StringReader(sb.ToString()));
Und die Fehler, die ich bekommen hab ist:
There is an error in XML document (1, 2).
<Import_RootObject xmlns=''> was not expected.
Weiß jemand, was fehlt mir hier? Hoffe mir kann jemand helfen!
Grüße,
Bob
- Google-Suche mit Schlüsselwörtern "Es ist ein Fehler in XML Dokument (1, 2).", Sie erhalten ein paar Beiträge über diesem
- von denen die meisten völlig fehlt der Punkt für dieses Beispiel...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Der erste offensichtliche Fehler:
sollte natürlich sein:
Allerdings sollten Sie auch beachten, dass xml groß- /Kleinschreibung:
werden sollte:
entsprechend der xml; ebenso
werden sollte:
und:
werden sollte:
Beachten Sie außerdem, dass
<Players>
ist nicht ein Nachkomme vonImport_Event
- es ist TeilEvents
. Dies macht das Leben ein wenig komplexer.Wir dann beachten Sie, dass Ihre Daten nicht "starttime" /"endtime", so können wir vereinfachen zu:
außer... Datum/Zeit keine gültigen xml-Datum/Zeiten - Sie sind im falschen format. So haben Sie vielleicht zu behandeln, diejenigen, die als
string
Daten für jetzt.Endlich, Ihre xml ungültig ist - Sie haben nicht geschlossen wird das root-element.
Ehrlich gesagt, ich bin nicht überrascht, dass die serializer nicht so 🙂