wie mein Titel schon sagt suche ich nach etwas mit dem man (wenn möglich so einfach) wie mit der XmlDocument Klasse XML-Dateien erstellen kann, aber vielleicht etwas schneller.
Bei meinen jetzigen Versuchen war XmlDocument SEHR langsam und es wird auch offiziell von Microsoft "gewarnt" dass die Klasse XMlDocument etwas resourcenfressend ist.
Kennt jemand vielleicht eine Bibliothek mit der das etwas zackiger geht?
Zur Serialisierung ist sowohl das XmlDocument als auch L2X recht schlecht geeignet. Wieso nimmst du nicht einer der von .NET mitgebrachten Serialisierungs-Methoden?
@Florian Reischl: ich will aber gar nichts serialisieren. Ich will nur ein XML Dokument zusammenstöpseln.
@kleines_eichhoernchen: ich muss meine XML Datei nur erstellen - weder lesen noch irgendwie anders analysieren. Soweit ich jetzt das richtig in Erinnerung hab ist XPathDocument ja eine schreibgeschützte Abbildung eines XML Dokuments im Speicher, also eher ungeeignet für mich
Ling to XML ist genau was ich brauche.
Was aber natürlich noch performanter ist, wäre das XML-Dokument per String und StringBuilder zusammenzustöpseln.
Hab mich für eine Michung aus diesen 2 Varianten entschieden.
Ohne es jetzt getestet zu haben bezweifel ich einmal dass XML-Serialisierung recht schnell ist - außerdem hab ich keine Objektstruktur
XML über Text zusammenstecken würde ich nicht machen. Wenn's dir um die höchste Performance geht, nimm den XmlWriter, schneller und speicherschonender geht's nicht.
Wenn's dir um die höchste Performance geht, nimm den XmlWriter
So ist es - auch Linq to Xml verwendet intern diesen.
mfG Gü
genauso wie der xmlserializer....
Und das XmlDocument 8)
Die Frage ist halt wie's das eine oder andere Modell implementiert. Vorteile bei der direkten Verwendung des XmlWriters sind halt:
* Kein Overhead durch andere Klassen
* Kann streamen, muss also nicht alles im Speicher halten
ohne es getestet zu haben ist diese aussage ohnehin ungültig.
Oje, erschwischt
Ich bin jetzt in der Zwischenzeit komplett darauf umgestiegen mir mein XML Dokument "per Hand" zusammenzustellen. Soll heißen, dass ich die einzelnen Teile direkt in einen Stream reinschreibe. Ist logischerweise sehr performant.
Da ich das Dokument nur erstelle und nicht irgendwie verändere klappt das auch ganz gut. Außerdem sind meine Funktionen ähnlich rekursiv verschachtelt wie ein XML-Dokument weshalb ich eigentlich auch keine Probleme habe die Endtags zu vergessen.
Gruß
Preli
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von preli am .