Hallo zusammen
Ich habe nun längers gesuch und bin leider nicht fündig geworden. Ich habe bereits XML Dateien die ich auslede. Das Problem ist aber dass das jetzige XML-File anderst aufgebaut ist als sonnst.
Ein File das so ausshiet:
oder so
ist absolut kein Problem.
Nun aber mein neu erhaltenes XML sieht wie nachstehend aus. Normalerweise sind noch ca. 1000 weitere Artikel aufgeführt der einfachheitshalber habe ich es auf einen Artikel gekürzt. Jeder Artikel ist innerhalt von Artikelliste und hat ein Header und Artikel Teil.
Führe ich den nachstehenden Code aus so erhalte ich den Fehler: InvalidOperationException: <Artikelliste xmlns=''> was not expected.
Klar weil dieses XML-File nicht mit Artikellist =ETWAS arbeitet. Was muss ich im nachstehenden Code anpassen damit ich das File auslesen kann und in ein DataGrid übergeben kann?
Gruss und Danke
Ich habe nun längers gesuch und bin leider nicht fündig geworden. Ich habe bereits XML Dateien die ich auslede. Das Problem ist aber dass das jetzige XML-File anderst aufgebaut ist als sonnst.
Ein File das so ausshiet:
oder so
XML-Quellcode
- <?xml version="1.0"?>
- <ArrayOfEmployee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
- <Employee>
- <Id>1</Id>
- <Name>Venki Chikkanti</Name>
- <Dept>Development</Dept>
- </Employee>
- <Employee>
- <Id>2</Id>
- <Name>Matt</Name>
- <Dept>Management</Dept>
- </Employee>
- </ArrayOfEmployee>
ist absolut kein Problem.
Nun aber mein neu erhaltenes XML sieht wie nachstehend aus. Normalerweise sind noch ca. 1000 weitere Artikel aufgeführt der einfachheitshalber habe ich es auf einen Artikel gekürzt. Jeder Artikel ist innerhalt von Artikelliste und hat ein Header und Artikel Teil.
XML-Quellcode
- <?xml version="1.0" encoding="utf-8"?>
- <Artikelliste>
- <Header>
- <Preisanbieter>Firma ABC AG</Preisanbieter>
- <Datum>25.09.2021</Datum>
- </Header>
- <Artikel>
- <Nr>100000000</Nr>
- <LieferantenArtikelNummer>2222222</LieferantenArtikelNummer>
- <Lieferantennummer>132</Lieferantennummer>
- <LieferantenName>Firma Beispie GmbH</LieferantenName>
- <Lieferstatus>0</Lieferstatus>
- <Preis>110.00</Preis>
- <Preismenge>100</Preismenge>
- <Rabatt>5.00%</Rabatt>
- <Warengruppe>0000000001</Warengruppe>
- <Logistik>
- <Masseinheit>MTR</Masseinheit>
- <Inhaltseinheit> </Inhaltseinheit>
- <Inhaltsmenge>0.00</Inhaltsmenge>
- <Mindestbestellmenge>3.00</Mindestbestellmenge>
- <Interval>3.00</Interval>
- </Logistik>
- </Artikel>
- </Artikelliste>
Führe ich den nachstehenden Code aus so erhalte ich den Fehler: InvalidOperationException: <Artikelliste xmlns=''> was not expected.
Klar weil dieses XML-File nicht mit Artikellist =ETWAS arbeitet. Was muss ich im nachstehenden Code anpassen damit ich das File auslesen kann und in ein DataGrid übergeben kann?
C#-Quellcode
- private void cmd_Import_Click(object sender, RoutedEventArgs e)
- {
- var path="";
- OpenFileDialog open = new OpenFileDialog();
- if (open.ShowDialog() == true)
- {
- path = open.FileName;
- }
- List<Artikelliste> emps = new List<Artikelliste>();
- XmlDocument xmlDocument = new XmlDocument();
- xmlDocument.Load(path);
- string xmlString = xmlDocument.OuterXml;
- using (StringReader read = new StringReader(xmlString))
- {
- Type outType = typeof(List<Artikelliste>);
- XmlSerializer serializer = new XmlSerializer(outType);
- using (XmlReader reader = new XmlTextReader(read))
- {
- emps = (List<Artikelliste>)serializer.Deserialize(reader);
- reader.Close();
- }
- read.Close();
- }
- foreach (var item in emps)
- {
- MessageBox.Show(item.Preisanbieter + " " + item.Datum + " " + item.ENr);
- }
- }
- public class Artikelliste
- {
- public string Preisanbieter { get; set; }
- public string Datum { get; set; }
- public string Nr { get; set; }
- public double Preis { get; set; }
- }
Gruss und Danke