C# 在C中使用XMLWriter创建大型xml#
我试图使用XMLWriter创建一个包含大量数据的xml,函数执行时没有任何异常。但是当我打开xml时,发现创建的xml不完整,中途被破坏。我不知道我做错了什么。XMLWriter有默认大小限制吗?XMLWriter是创建大型XML的最佳方法吗?如果没有,请告诉我创建大型xml的最佳方法是什么?使用XDocument是否让我的生活更轻松 这是我的代码结构(我不能把我的原始代码放在这里!!:() XML的大小预计为几百KBC# 在C中使用XMLWriter创建大型xml#,c#,xml,C#,Xml,我试图使用XMLWriter创建一个包含大量数据的xml,函数执行时没有任何异常。但是当我打开xml时,发现创建的xml不完整,中途被破坏。我不知道我做错了什么。XMLWriter有默认大小限制吗?XMLWriter是创建大型XML的最佳方法吗?如果没有,请告诉我创建大型xml的最佳方法是什么?使用XDocument是否让我的生活更轻松 这是我的代码结构(我不能把我的原始代码放在这里!!:() XML的大小预计为几百KB 请回复..我怀疑您只是没有正确关闭写入: using (//file st
请回复..我怀疑您只是没有正确关闭写入:
using (//file stream)
{
using(XmlWriter mywriter = new XmlWriter.Create(@"C:\Auditlog.xml")) {
// write start element1
// write start element2
while (//not end of file)
{
switch (entrytype)
{
Case 1:
// create elements
Case 2:
// create elements
so on ....
}
}
// write end element2
// write endelement1
}
}
请注意使用-的额外的,否则写入程序可能仍有一些数据处于缓冲状态。这通常会导致数据的结尾缺失;如果没有可复制的示例,我们显然无法在中途对其进行诊断
另外请注意:xml适用于大文件,但它不一定是最好的choce-不过几百k也可以。正是创建大xml文件的工具,大小限制将由底层流决定,在您的情况下,底层流是文件系统,因此只要您在这方面有可用空间,它就应该是可以的
每次编写开始元素时,都应确保提供相应的结束元素,否则将引发异常。您尚未提供代码的完整示例来说明问题,因此无法确定问题出在哪里
此外,在构造函数中指定文件名时,不需要使用文件流:
using (var writer = new XmlWriter.Create(@"C:\mydata.xml"))
{
// TODO: use the writer here
}
几百KB没那么大!别担心!:)
问候,
马扎尔·卡里米(Mazhar Karimi)你说“破碎”是什么意思?当您尝试打开它时会出现什么错误?“断开”表示xml中最后几个节点没有关闭,最后一个节点的值也不完整!!!谢谢你所有的问题都解决了,当我使用额外的“使用”它工作。
using (var writer = new XmlWriter.Create(@"C:\mydata.xml"))
{
// TODO: use the writer here
}
using (//file stream)
{
using(XmlWriter mywriter = new XmlWriter.Create(@"C:\Auditlog.xml")) {
// write start element1
// write start element2
while (//not end of file)
{
switch (entrytype)
{
Case 1:
// create elements
Case 2:
// create elements
so on ....
}
}
// write end element2
// write endelement1
mywriter.Close();
}
}