【发布时间】:2021-08-19 08:01:50
【问题描述】:
我有一个用于编辑 .xml 文件的程序。 我可以编辑和保存.xml文件,写入文件可以正常工作,但是当我编辑和保存另一个XML表时,它会覆盖前一个。 p>
我的代码:
DataTable ds = (DataTable)dataGridView1.DataSource;
ds.WriteXml(openFileDialog1.FileName);
saved = true;
MessageBox.Show("Successfully saved!", "Saving.");
我知道为什么会这样,程序在保存时正在保存 dataGridView 中的内容。
我试过:ds.Merge()、TextWriters各种类型的Streams和FileModes
那么如何在不完全覆盖的情况下保存 xml 文件呢?
例子:
这是我拥有的文件:
<catalog>
<book id="bk101">
<author>Gambardella, Matthew</author>
<title>XML Developer's Guide</title>
<genre>Computer</genre>
<price>44.95</price>
<publish_date>2000-10-01</publish_date>
<description>An in-depth look at creating applications
with XML.</description>
</book>
<catalog>
但是当我使用另一个 XML 表编辑文件时,它会被覆盖,它看起来像这样:
<catalog>
<plant>
<name>tulip</name>
</plant>
</catalog>
感谢您的帮助!
抱歉,语言不好。
【问题讨论】:
-
保存就是覆盖。如果要更改文件,首先必须读取它,然后更改它,然后保存整个文件。你不能保存文件的一部分,这没有意义
-
这能回答你的问题吗? Modify XML existing content in C#
-
你不能保存文件的一部分 - 好吧,你可以..但不能用WriteXml