我有一个大的 xml 文件(大约 10 MB),结构如下:
<Errors>
<Error>.......</Error>
<Error>.......</Error>
<Error>.......</Error>
<Error>.......</Error>
<Error>.......</Error>
</Errors>
我的需要是在 标签之前的末尾添加一个新节点
最佳答案
您需要使用 XML 包含技术。
您的 error.xml(不会改变,只是一个 stub 。用于 XML 解析器读取):
<?xml version="1.0"?>
<!DOCTYPE logfile [
<!ENTITY logrows
SYSTEM "errorrows.txt">
]>
<Errors>
&logrows;
</Errors>
您的 errorrows.txt 文件(更改,xml 解析器不理解它):
<Error>....</Error>
<Error>....</Error>
<Error>....</Error>
然后,向 errorrows.txt 添加一个条目:
using (StreamWriter sw = File.AppendText("logerrors.txt"))
{
XmlTextWriter xtw = new XmlTextWriter(sw);
xtw.WriteStartElement("Error");
// ... write error messge here
xtw.Close();
}
或者您甚至可以使用 .NET 3.5 XElement,并将文本附加到 StreamWriter
:
using (StreamWriter sw = File.AppendText("logerrors.txt"))
{
XElement element = new XElement("Error");
// ... write error messge here
sw.WriteLine(element.ToString());
}
另见 Microsoft's article Efficient Techniques for Modifying Large XML Files
关于c# - 将新节点添加到 xml 末尾的最快方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/849043/