2016-05-12 38 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阅读器,它会照顾使用指定的编码本身。