Hallo,
Ist es möglich über System.xml eine sehr große Datei Zeile für Zeile einzulesen und die Nodes 1:1 als String auszulesen und in eine andere Datei zu kopieren?
Bis jetzt habe ich nur mit XmlReader gearbeitet, wo ich jedes einzelne Attribut usw. einzeln auslesen muss.
Ich bin aber drauf gekommen, dass es einfacher wäre, die riesige Datei vor der vollständigen Verarbeitung zu bereinigen und bestimmte Nodes, die ich nie benötige, welche aber irrsinning viele überflüssige Bytes generieren, in der neuen Datei einfach wegzulassen. Dadurch sollte die Datei von derzeit min. 1.5 GB auf gut die Hälfte zusammenschrumpfen.
Was ich also möchte ist, Element kopieren, ohne die Attribute usw. einzeln auszulesen. Gibt es dafür eine eigene Funktion oder Klasse?
<?xml version="1.0" encoding="UTF-8"?> soll im String <?xml version="1.0" encoding="UTF-8"?> bleiben
<mein:ITEM> bleibt <mein:ITEM> usw.
Ich weiß im Vorhinein nicht welche Elemente vorkommen werden. Ich weiß nur, dass immer ein bestimmtes (Audioinformationen) dabei ist, das gar nicht erst kopiert werden muss. Entweder durch Überspringen, wenn ich es per XmlReader machen kann, oder direkt durch Regex-Replace im ausgelesenen String. Die abgespeckte Datei würde ich benötigen, da ich immer wieder in der Datei selbst nachschauen muss, ob bestimmte Elemente richtig übernommen wurden oder neue dazu gekommen sind. Aktuell dauert dies im XML Liquid Studio bei sehr leistungsfähigem PC immer noch bis zu 10 Minuten für einen Suchdurchlauf.
Die Datei selbst ist recht groß und wird mit jeder Übermittlung vom Sender größer/erweitert, daher kann ich die Datei nicht als Textstring auslesen und abgespeckt speichern, da sonst das Programm abschmiert.
LG,
Pascal
Ist es möglich über System.xml eine sehr große Datei Zeile für Zeile einzulesen und die Nodes 1:1 als String auszulesen und in eine andere Datei zu kopieren?
Bis jetzt habe ich nur mit XmlReader gearbeitet, wo ich jedes einzelne Attribut usw. einzeln auslesen muss.
Ich bin aber drauf gekommen, dass es einfacher wäre, die riesige Datei vor der vollständigen Verarbeitung zu bereinigen und bestimmte Nodes, die ich nie benötige, welche aber irrsinning viele überflüssige Bytes generieren, in der neuen Datei einfach wegzulassen. Dadurch sollte die Datei von derzeit min. 1.5 GB auf gut die Hälfte zusammenschrumpfen.
Was ich also möchte ist, Element kopieren, ohne die Attribute usw. einzeln auszulesen. Gibt es dafür eine eigene Funktion oder Klasse?
<?xml version="1.0" encoding="UTF-8"?> soll im String <?xml version="1.0" encoding="UTF-8"?> bleiben
<mein:ITEM> bleibt <mein:ITEM> usw.
Ich weiß im Vorhinein nicht welche Elemente vorkommen werden. Ich weiß nur, dass immer ein bestimmtes (Audioinformationen) dabei ist, das gar nicht erst kopiert werden muss. Entweder durch Überspringen, wenn ich es per XmlReader machen kann, oder direkt durch Regex-Replace im ausgelesenen String. Die abgespeckte Datei würde ich benötigen, da ich immer wieder in der Datei selbst nachschauen muss, ob bestimmte Elemente richtig übernommen wurden oder neue dazu gekommen sind. Aktuell dauert dies im XML Liquid Studio bei sehr leistungsfähigem PC immer noch bis zu 10 Minuten für einen Suchdurchlauf.
Die Datei selbst ist recht groß und wird mit jeder Übermittlung vom Sender größer/erweitert, daher kann ich die Datei nicht als Textstring auslesen und abgespeckt speichern, da sonst das Programm abschmiert.
LG,
Pascal
Leider hab ich nicht immer Zeit zum Programmieren, da es eher ein Hobby ist. Falls ich mal im Forum ne Frage stelle und länger nicht antworte, nicht böse sein: Ich bin dann entweder beruflich oder mit der Familie zu sehr eingespannt oder einfach zu müde. Das kann erfahrungsgemäß auch mal über Wochen dauern, aber ich melde mich immer und setze die Frage ggf. auf beantwortet.