标签: writexml

读取和编写XML作为关系数据 - 最佳实践

我应该做的是:
1)读取一个巨大的(700MB~1000万个元素)XML文件;
2)解析保存顺序 ;
3)用SQL插入语句创建一个文本(一个或多个)文件,将其批量加载到DB上;
4)编写关系元组并用XML写回.

我在这里交换一些关于最佳(==快速快速...)方式的想法来做到这一点.我将使用C#4.0和SQL Server 2008.

我相信XmlTextReader是一个良好的开端.但我不知道它是否可以处理如此庞大的文件.是否在实例化时加载所有文件或仅保存内存中的实际读取行?我想我可以做一个while(reader.Read()),这应该没问题.

编写文本文件的最佳方法是什么?因为我应该保留XML的顺序(采用一些编号模式),我将不得不在内存中保存树的某些部分以进行计算等...我应该使用stringbuilder进行迭代吗?

我将有两个场景:一个是每个节点(元素,属性或文本)将在同一个表中(即,将是同一个对象),另一个场景是每种类型的节点(只有这三种类型,没有评论等) ..)我将在DB中有一个表和一个表示该实体的类.

我的最后一个具体问题是DataSet有多好ds.WriteXml?它会处理10M元组吗?也许最好从数据库中提取块并使用XmlWriter ......我真的不知道.

我正在测试所有这些东西...但我决定发布这个问题来倾诉你们,跳跃你的专业知识可以帮助我更正确,更快地完成这些事情.

提前致谢,

佩德罗杜索

c# xml sql-server xmlreader writexml

2
推荐指数
1
解决办法
1120
查看次数

使用C#将XML文件写入特定的XML结构

通常的方式,我编写XML文件的代码是,

    XmlWriterSettings settings = new XmlWriterSettings();
    settings.Indent = true;
    XmlWriter writer = XmlWriter.Create("Products.xml", settings);

    writer.WriteStartDocument();

    writer.WriteComment("This file is generated by the program.");

    writer.WriteStartElement("Product");
    writer.WriteAttributeString("ID", "001");
    writer.WriteAttributeString("Name", "Keyboard");
    writer.WriteElementString("Price", "10.00");
    writer.WriteStartElement("OtherDetails");
    writer.WriteElementString("BrandName", "X Keyboard");
    writer.WriteElementString("Manufacturer", "X Company");
    writer.WriteEndElement();
    writer.WriteEndDocument();
    writer.Flush();
    writer.Close();
Run Code Online (Sandbox Code Playgroud)

但上面的代码给了我一个不同的XML结构,如果我需要输出如下给定结构,如何编码,

<Books>
<Book ISBN="0553212419">
<title>Sherlock Holmes</title>
<author>Sir Arthur Conan Doyle</author>
</Book>
<Book ISBN="0743273567">
<title>The Great Gatsby</title>
<author>F. Scott Fitzgerald</author>
</Book>
<Book ISBN="0684826976">
<title>Undaunted Courage</title>
<author>Stephen E. Ambrose</author>
</Book>
<Book ISBN="0743203178">
<title>Nothing Like It In the World</title>
<author>Stephen E. Ambrose</author>
</Book> …
Run Code Online (Sandbox Code Playgroud)

c# xml writexml

2
推荐指数
1
解决办法
3万
查看次数

标签 统计

c# ×2

writexml ×2

xml ×2

sql-server ×1

xmlreader ×1