2016-05-12 25 views
-1

Ich versuche eine XML-Datei zu laden, die eine Mischung aus ASCII-Text und arabischen Zeichen enthält. Hier ist der Top-Schnipsel:XML mit arabischen Daten lesen eingebettet C#

<?xml version="1.0" encoding="utf-8"?> 
<!DOCTYPE TS> 
<TS version="2.1" language="ar_EG"> 
<context> 
    <message> 
     <location filename="ui/aboutdialog.cpp" line="90"/> 
     <source>You have </source> 
     <translation type="unfinished">يوجد لديك</translation> 
    </message> 
    <message> 
     <location filename="ui/aboutdialog.cpp" line="90"/> 
     <source> launches left</source> 
     <translation type="unfinished">عدد التشغيلات المتبقية</translation> 
    </message> 
</context> 

Ich mag diese in ein C# TreeView Objekt laden, aber ich habe Probleme mit dem Laden in XDocument oder XMLDocument.

diese verwenden:

XDocument xd = XDocument.Load(File.ReadAllText(tbxTSFileName.Text)); 

oder

XDocument xd = XDocument.Load(File.ReadAllText(tbxTSFileName.Text, Encoding.GetEncoding(874))); 

gibt mir ein "Ungültige URI: string Uri ist zu lang" Fehler.

dies mit:

XmlDocument xd = new XmlDocument(); 
xd.Load(tbxTSFileName.Text); 

Gibt den Fehler "ungültiges Zeichen in den gegebenen Kodierungs Linie 9 Position 40.".

Antwort

2

Lesen Sie die Dokumentation zu der Methode, die Sie anrufen.

XDocument.Load nimmt eine URL, keine XML-Zeichenfolge.

Sie möchten XDocument.Parse.

0

Ihr Leser muss utf-8 verwenden, wie im Dokument selbst angegeben. Idealerweise würden Sie einen XML-Reader verwenden, und es würde dafür sorgen, dass die angegebene Codierung selbst verwendet wird.