如何在c#中将xml数据读入数据集?

时间:2012-01-26 15:01:44

标签: c# .net xml visual-studio-2010 crystal-reports

我是.net c#编程的新手,我需要将远程xml文件读入数据集并使用数据集创建水晶报告。

到目前为止一切正常,除了一些Unicode字符在水晶报表查看器中显示不正确

这是加载包含unicode的xml文件的正确方法吗?

string reportDataPath = "http://domain/test/data.xml";

DataSet reportData = new DataSet();
try
{
  reportData.ReadXml(reportDataPath);
}
catch
{

}

设置来源

report = new SampleReport();
report.SetDataSource(reportData);

在xml文件编码集中,如

<?xml version="1.0" encoding="UTF-8"?>

修改: -

这是我正在谈论的问题。这是与sinhala unicode字体

xml文件中的

文本显示在下面

enter image description here

水晶报告查看器显示在文本下方

enter image description here

此致

1 个答案:

答案 0 :(得分:1)

通常我总是尝试使用我的编码类型,所以我会这样做:

System.Data.DataSet reportData = new System.Data.DataSet();
System.Net.WebRequest request= System.Net.WebRequest.Create(reportDataPath);

using (System.Net.WebResponse response =   (System.Net.HttpWebResponse)request.GetResponse()) {
    using (System.IO.StreamReader sr = new System.IO.StreamReader(response.GetResponseStream(), Encoding.UTF8)) {
        reportData.ReadXml(sr);
    }
}

请注意,unicode可以使用不同的格式编码,UTF-8,UTF-16等。您将看到的主要是UTF-8。在.NET中,编码类型Encoding.Unicode是UTF-16