我在使用XML时遇到问题(以rdl格式读/写SSRS报告定义)。我试着读它然后再写一遍。 (我打算做一些编辑,但现在已经禁用了) 再次写时,我失去了很多格式,似乎也失去了数据。写入文件的文件大小是我读入的文件的大约30-40%,即使我暂时禁用了编辑位。 我写了一个读者:
public class XMLLoader
{
public SSRSDocument Load(string path, string filename)
{
var doc = new XmlDocument();
doc.Load(path+filename);
var result = new SSRSDocument
{
Report = doc,
Path = path,
Filename = filename
};
return result;
}
}
和作家:
public class XMLWriter
{
public void Write(SSRSDocument document, string path, string filename)
{
var writer = XmlWriter.Create(path + filename);
document.Report.Save(writer);
}
}
SSRS文档是一个带有XML和一些元数据的结构(现在只是XML和文件的位置,但稍后会扩展):
public struct SSRSDocument
{
public XmlDocument Report { get; set; }
public string Path { get; set; }
public string Filename { get; set; }
}
我的输入文件是450 KiB,但我的输出只有170KiB?
此外,许多行结尾都已下降,但似乎一些报告定义数据也已消失。我想知道我在这里做错了什么。当我在阅读和写作之间没有改变任何东西时,我不应该从我的读者读到的内容中获得相同的文件吗?
[编辑]遗憾的是,由于数据的敏感性,我无法发布RDL。