Guten Tag,
Meine Ausgangslage ist ein XML dass ich deserialisieren möchte, ich bekomme aber eine InvalidOperationException "There is an error in XML document (3,2). Dieser Fehler trifft bei der Linie 'clients = (List<Client>)deserializer.Deserialize(textReader);' vor.
Das ist meine Methode
static List<Client> DeserializeFromXML()
{
XmlSerializer deserializer = new XmlSerializer(typeof(List<Client>));
TextReader textReader = new StreamReader(@"D:\Temp\Clients.xml");
List<Client> clients;
clients = (List<Client>)deserializer.Deserialize(textReader);
textReader.Close();
return clients;
}
und hier das Xml
<?xml version="1.0" encoding="utf-8"?>
<Client>xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Name>Swisscom</Name>
<Ini>0</Ini>
<Xml>1</Xml>
</Client>
Gruss und Danke
w1z4rd
Hallo w1z4rd2003,
müssen die Schema-Angaben nicht als Tag in einem Element stehen? Oder sind das Element-Daten?
Gruß,
Fabian
"Eine wirklich gute Idee erkennt man daran, dass ihre Verwirklichung von vornherein ausgeschlossen erscheint." (Albert Einstein)
Gefangen im magischen Viereck zwischen studieren, schreiben, lehren und Ideen umsetzen…
Blog: www.fabiandeitelhoff.de
Hallo Fabian,
Ich bin mir jetzt nicht sicher ob ich deine Frage richtig verstanden habe aber ich hab eine Klasse die Client heisst und die wie folgt aussieht
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Xml.Serialization;
namespace Swisscom.It.ConfigDB.Model
{
public class Client
{
/// <summary>
/// Kunden Name
/// </summary>
[XmlElement("ClientName")]
public string Name { get; set; }
/// <summary>
/// Type Ini
/// </summary>
[XmlElement("TypeIni")]
public bool Ini { get; set; }
/// <summary>
/// Type Xml
/// </summary>
[XmlElement("TypeXml")]
public bool Xml { get; set; }
}
}
Da sind die drei Elemente drin die ich im XML drin habe, mit der Methode DeserializeFromXML wird somit ein XMLSerializer erstellt vom typ List<Client>
Hallo w1z4rd2003,
wenn es kein tippfehler ist stimmt das XML so auch nicht
Deins
<?xml version="1.0" encoding="utf-8"?>
<Client>xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Name>Swisscom</Name>
<Ini>0</Ini>
<Xml>1</Xml>
</Client>
Beispiel:
<?xml version="1.0"?>
<TestDataXml xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<DataName>testing</DataName>
</TestDataXml>
Du solltest eventuell der Class noch das XmlRootAttribute geben
Gruß André
also wenn du nicht nur im forum einen tippfehler hast, dann ist das xml invalid. die spitze klammer von
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
wird nirgends geöffnet.
xmlns sind üblicherweise attribute, nicht content eines elements.
...
TheGear war schneller 😃
loop:
btst #6,$bfe001
bne.s loop
rts