2016-05-12 40 views
-1

我想加載一個XML文件,其中包含ASCII文本和阿拉伯字符的混合。這裏是頂級的片段:閱讀XML與阿拉伯數據嵌入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> 

我想了加載到一個C#的TreeView對象這一點,但我有裝載問題納入的XDocument或爲XMLDocument。

使用此:

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

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

給了我一個 「無效的URI:URI字符串太長」 的錯誤。

使用該:

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

提供了錯誤 「無效字符在給定的編碼號線9的位置40。」。

回答

2

請閱讀您所調用方法的文檔。

XDocument.Load需要一個URL,而不是一個XML字符串。

你想要XDocument.Parse

0

您的讀者需要使用utf-8,如文檔本身所示。理想情況下,你會使用XML閱讀器,它會照顧使用指定的編碼本身。