Dateiformat von XML-Dateien ermitteln
Der Titel klingt wie ein Widerspruch in sich und doch gibt es Unterschiede
Ich mache gerade meine ersten Gehversuche mit System.xml und finde Unterschiede in den Formaten der XML-Dateien die ich lesen möchte:
Ein Teil sind ACSI-Dateien, ein anderer UTF-16 und den meisten fehlt die Formatangabe am Dateianfang (z.B. <?xml version="1.0" encoding="UTF-8"?>)
Ich kann zwar mit
bzw
und anschließendem
die XML-Dateien lesen, aber wie stelle ich vorher ihr Format fest, wenn die Formatangabe in den Dateien fehlt?
Die einzige Möglichkeit die ich bis jetzt sehe ist, die Formate der Reihe nach zu lesen versuchen und dann das Ergebnis zu prüfen.
Ein einfaches
führt z.B. bei UTF-16 Dateien ohne Header zum Fehler 'Ungültige Daten auf Stammebene. Zeile 1, Position 1.'
Danke fürs Lesen, Tussi
Ein Teil sind ACSI-Dateien, ein anderer UTF-16 und den meisten fehlt die Formatangabe am Dateianfang (z.B. <?xml version="1.0" encoding="UTF-8"?>)
Ich kann zwar mit
fileReader == My.Computer.FileSystem.ReadAllText(path, System.Text.Encoding.Unicode)
bzw
fileReader == My.Computer.FileSystem.ReadAllText(path, System.Text.Encoding.ASCII)
und anschließendem
LoadXml(fileReader)
die XML-Dateien lesen, aber wie stelle ich vorher ihr Format fest, wenn die Formatangabe in den Dateien fehlt?
Die einzige Möglichkeit die ich bis jetzt sehe ist, die Formate der Reihe nach zu lesen versuchen und dann das Ergebnis zu prüfen.
Ein einfaches
xmlDocument.LoadXml(path)
Danke fürs Lesen, Tussi
Please also mark the comments that contributed to the solution of the article
Content-Key: 174242
Url: https://administrator.de/contentid/174242
Printed on: April 25, 2024 at 23:04 o'clock
4 Comments
Latest comment
Was spricht dagegen, die Datei direkt zu laden?
http://msdn.microsoft.com/de-de/library/system.xml.xmldocument.load(v=V ...
http://msdn.microsoft.com/de-de/library/system.xml.xmldocument.load(v=V ...