Xml-Datei auslesen in C#?
Hallo, ich bin ziemlich neu auf dem Gebiet, und ich hab auch schon das ganze Internet durchforstet, aber nichts gefunden was ich irgendwie an meine Zwecke anpassen könnte... Das hier entspricht etwa meinem Xml: Ich bräuchte irgendwas womit ich einzelne Textteile in strings übergeben könnte...
<root>
<node1 Attribut1="Attribut1 Text" Attribut2="Attribut2 Text" Attribut3="Attribut3 Text" Attribut4="Attribut4 Text" Attribut5="Attribut5 Text">node text</node1>
<node2 Attribut2="node2 text">node2</node2>
</root>
3 Antworten
Stichworte:
- XmlSerializer
- XmlReader
- LINQ to XML
Such mal danach, sind drei völlig verschiedene Herangehensweisen, XML zu lesen.
Der XmlSerializer ist sehr einfach zu nutzen und ermöglicht sehr schnelle Ergebnisse, ist aber unflexibel. Er ist im Grunde nur ein Wrapper um den XmlReader, der das XML direkt in Objekte schreiben kann.
Der XmlReader ist auf Performance und Speicheroptimierung getrimmt, aber komplex zu nutzen, da man nur von vorne bis hinten lesen kann.
LINQ to XML ist nicht super performant, da einmal alles in den RAM gelesen und dann dort durchsucht wird, doch das macht ihn sehr flexibel und angenehm zu nutzen, damit kann man bei bleibender Flexibilität übersichtlichen Code schreiben.
Der XmlSerializer ist super für kleine/einfache Anwendungsfälle, wo man nur wenig Flexibilität braucht.
Der XmlReader ist spannend, wenn es um sehr große XML-Dateien geht.
LINQ to XML ist super für den Rest.
PS:
Es gibt noch das XmlDocument, das erfüllt in etwa den selben Zweck, wie LINQ to XML, ist aber mMn. nicht so angenehm zu nutzen.
https://docs.microsoft.com/de-de/dotnet/api/system.xml.xmldocument?view=netcore-3.1
das wäre dann InnerText