我在磁盘上有一个非常基本的XML结构/文件,类似于:
<root>
<data timestamp="dd-mm-yyyy" type="comment">kdkdkdk</data>
<data timestamp="dd-mm-yyyy" type="event">kdkdkdkgffgfdgf</data>
<data timestamp="dd-mm-yyyy" type="something">kddsdsfsdkdkdk</data>
</root>
Run Code Online (Sandbox Code Playgroud)
如上所述,XML将位于磁盘上的外部文件中.由于文件可能会变得相当大(实际上每隔几周会被"修剪"),我不想先加载XML文件来添加新节点......
有没有办法添加这样的新节点?它可以被添加到顶部/底部等,因为实际使用XML的进程无论如何都按时间戳对它进行排序.
我猜测粗略的方法是将节点作为文本附加..但是我认为这会在结束标记之后添加节点?
任何想法都感激不尽......大卫.
不使用任何XML API或工具.
您可以将文件作为文本打开,找到位置</root>并从那里开始覆盖.当然</root>再添加一次.
一种快速而肮脏的方法,这不是很强大:
====
string closeTag = "</root>";
int closeLength = Encoding.UTF8.GetBytes(closeTag).Length;
var fs = System.IO.File.Open(filename, System.IO.FileMode.Open);
fs.Position = fs.Length - closeLength;
var writer = new StreamWriter(fs); // after the Position is set
writer.WriteLine(newTag);
writer.Write(closeTag); // NOT WriteLine !!
writer.Close();
fs.Close();
Run Code Online (Sandbox Code Playgroud)
当然,你知道使用 using() {}块.
| 归档时间: |
|
| 查看次数: |
2652 次 |
| 最近记录: |