如果从Silverlight 读取本地GB2312格式的xml文件
由于Silverlight 本身不提供對GB2312編碼格式的支持,我們就需要自己做些代碼讀取相關類型的文件。
之前已經有很多人做過這方面的研究和調查,但是我沒找到明確闡述如何讀取本地GB2312 XML文件的相關文章,本篇內容屬于對前輩們探索的一個實際應用的例子。?
我會在文章結尾列舉一些我最近查找的資料鏈接,感謝aimeast?的支持。
以下為示例代碼:
//創建文件選擇對話框
OpenFileDialog dlg = new OpenFileDialog();
//設置選擇文件類型
dlg.Filter = "XML文件 (.xml) |*.XML";
//是否可以多選
dlg.Multiselect = false;
//便是對話框,并判斷文件選擇結果
if (true == dlg.ShowDialog())
{
//使用OpenRead()方法打開文件?
string fileContents;
//讀取文件字節流(不能用OpenText,否則默認以UTF-8方式讀取)
using (FileStream textStream = dlg.File.OpenRead())
{
//創建字節流數組
byte[] bytes = new byte[textStream.Length];
//讀取相關數據
textStream.Read(bytes, 0, Convert.ToInt32(textStream.Length));
//聲明GB2312解碼器 (作者:aimeast?)(地址:http://gb2312.codeplex.com/?)
GB2312.GB2312Encoding gb2312Encoding = new GB2312.GB2312Encoding();
//解碼讀取出文件內容
fileContents = gb2312Encoding.GetString(bytes, 0, bytes.Length);
}
//判斷是否為空
if (string.IsNullOrEmpty(fileContents) == false)
{
//讀取相關字符串內容(這里注意需要讀取的是字符串,如果是字節的話,依然會報錯)
XElement xele = XElement.Load(System.Xml.XmlReader.Create(new StringReader(xml)));
//其他XML讀取操作
}
參考資料:
http://www.cnblogs.com/xuesong/archive/2011/12/15/2288754.html
http://www.cnblogs.com/Aimeast/archive/2011/10/23/2221542.html
?
轉載于:https://www.cnblogs.com/Layne/archive/2012/03/26/2417447.html
總結
以上是生活随笔為你收集整理的如果从Silverlight 读取本地GB2312格式的xml文件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Thrust快速入门教程(三)——迭代器
- 下一篇: POJ 1423 Big Number