Öffnen einer XML-Datei und konvertieren diese zu UTF-8
Ich versuche zum öffnen einer xml-Datei (ansi) und das konvertieren und speichern von UTF-8.
Hier ist mein code:
using System;
using System.IO;
using System.Text;
using System.Xml;
class Test
{
public static void Main()
{
string path = @"C:\test\test.xml";
string path_new = @"C:\test\test_new.xml";
try
{
XmlTextReader reader = new XmlTextReader(path);
XmlWriterSettings settings = new XmlWriterSettings();
settings.Encoding = new UTF8Encoding(false);
using (var writer = XmlWriter.Create(path_new, settings))
{
reader.Save(writer);
}
}
catch (Exception e)
{
Console.WriteLine("The process failed: {0}", e.ToString());
}
}
}
Ich erhalte eine Fehlermeldung " System.Xml.XmlTextReader' enthält keine definition für 'Speichern' und keine Erweiterungsmethode 'Speichern' die Annahme ein erstes argument vom Typ 'System.Xml.XmlTextReader' gefunden werden konnte (fehlt eine using-Direktive oder ein Assemblyverweis?)
Welche Klasse bin ich hier noch fehlt ? Ist mein code richtig, um die Arbeit zu tun
EDIT:
Okay hier ein weiterer code, der ist mir Ausnahme:
using System;
using System.IO;
using System.Text;
using System.Xml;
class Test
{
public static void Main()
{
string path = @"C:\project\rdsinfo.xml";
//string path_new = @"C:\project\rdsinfo_new.xml";
try
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(path);
}
catch (Exception e)
{
Console.WriteLine("The process failed: {0}", e.ToString());
}
}
}
Es ist mir eine Ausnahme, ungültiges Zeichen in der angegebenen Codierung.
- gut der Fehler irgendwie sagt es alles. XmlTextReader nicht eine Methode Speichern (), so können Sie nicht nur geben Sie es und nehmen den compiler zu "bekommen", was du meinst...
Du musst angemeldet sein, um einen Kommentar abzugeben.
So einfach ist es:
Ändern Sie die ANSI-Codierung (1252 im Beispiel) je nachdem was man Ihr ANSI-Datei ist in - siehe
Liste der Codierungen.
Können Sie
writer
Ihre Instanz von XmlTextWriter schreiben, der das Xml in eine Datei. Diese Klasse enthält eine Reihe von Methoden, die verwendet werden können zum erzeugen der Ausgabe-Datei (d.h.writer.WriteString()
).Den Verweis finden Sie unter:
http://msdn.microsoft.com/en-us/library/system.xml.xmltextwriter.aspx
Eine bessere Methode gefunden werden kann, durch die Verwendung der Antwort auf diese Frage:
Konvertieren von utf-8-XML-Dokument in utf-16 zum einsetzen in SQL