所以我有这个代码块,它是If / Else的一部分,如果写入的文件已经存在,它应该附加到文档中。然而,它似乎是添加一个新的xml声明和根元素,就好像它是一个新文件。代码如下所示:
<div class="woocommerce-variation-availability" />
在这个块的第二遍中,它错误地说明文件中间有一个无效的xml声明.....看起来像这样:
variation.php
我怀疑我没有正确使用LINQ for XML。
答案 0 :(得分:2)
您将XML附加到同一文件而不是覆盖文件。
修复选项:
重新打开文件
// load and close stream
XDocument xD;
using(var fs = new FileStream(configFile, FileMode.Open))
{
xD = XDocument.Load(fs);
}
// modify document
XElement root = xD.Element("Store");
root.Add(
new XElement("template", new XElement("filePath", tmp.TempPath),
new XElement("Name", tmp.TempName),
new XElement("description", tmp.TempDesc)));
// open stream again and save XML
using(var fs = new FileStream(configFile, FileMode.Open))
{
xD.Save(fs);
}