如何在写入子元素后写入顶级XML元素值

如何在写入子元素后写入顶级XML元素值,xml,xmlwriter,Xml,Xmlwriter,我在这里寻找一个聪明的解决我的问题的建议 我正在使用XMLWriter类编写XML文档,并以仅向前的方式从ADO.NET数据读取器中读取数据。在XML文件的顶部,我需要有如下元素: <datefrom>2010-07-08</datefrom> <dateto>2010-07-10</dateto> <total>335.00</total> 需要是在数据中找到的最早日期。 是最晚的日期。 是文档后面列出的所有115.00

我在这里寻找一个聪明的解决我的问题的建议

我正在使用XMLWriter类编写XML文档,并以仅向前的方式从ADO.NET数据读取器中读取数据。在XML文件的顶部,我需要有如下元素:

<datefrom>2010-07-08</datefrom>
<dateto>2010-07-10</dateto>
<total>335.00</total>
需要是在数据中找到的最早日期。 是最晚的日期。 是文档后面列出的所有115.00元素的总和

当我在文件中创建/写入XML元素时,我可以跟踪较早/最新的日期,并且可以将所有金额相加得到一个总数

但是

在完成DataReader之后,您建议如何将这些值放入XML文件顶部的元素中?我是否应该将替换标记作为开始标记和结束标记之间的值,即@datefrom、@dateto、@total,并以某种方式替换它们?可能吗?我是否应该写入并关闭文件,重新打开它并用实际值替换标记?在将XML写入文件之前,是否有办法用值替换标记?我在生成XML文件方面做得不多,所以我不知道是否有一些标准的方法来实现这一点

谢谢

A仅向前,因此不能在文档开头插入元素。一种可能是对数据库执行两个SQL查询。第一个查询将聚合数据并返回开始时写入的三个值,然后执行第二个查询来写入其余的值。这样,聚合最小值、最大值、总计值在数据库级别完成,您不需要在代码中计算它们


如果你做不到这一点,你可以使用一个允许你在任何地方插入节点,但它在内存中有整个文档,如果文档很大,这可能是不可接受的。

是的,我实际上是沿着min,max,在另一个查询中进行合计,直到我意识到用户可以选中/取消选中显示的每一行的复选框。基本上可以省略写入xml文件的某些行。但我的文档不会那么大——将其存储在内存中应该是可以接受的。我得看一下XDocument。