我的要求是创建 xml 文件并将 xml 元素添加到现有的 xml 文件中。
首先,我尝试通过以下代码创建新的 xml 文件。
using (XmlWriter xmlWriter = XmlWriter.Create(fStream, xmlSettings))
{
xmlWriter.WriteStartDocument(true);
xmlWriter.WriteStartElement("Friends");
xmlWriter.WriteStartElement("Friend");
xmlWriter.WriteElementString("Name", "Safiq");
xmlWriter.WriteElementString("Like", "Char");
xmlWriter.WriteElementString("Unlike", "anger");
xmlWriter.WriteElementString("Nickname", "good");
xmlWriter.WriteElementString("Gift", "c#");
xmlWriter.WriteEndElement();
xmlWriter.WriteEndElement();
xmlWriter.WriteEndDocument();
xmlWriter.Flush();
}
接下来,我尝试将新元素添加到现有文件中。
XDocument XDOC = XDocument.Load(fStream);
XElement x = new XElement("Friend");
x.Add(new XElement("Name", "Safiq"));
x.Add(new XElement("Like", "Char"));
x.Add(new XElement("Unlike", "anger"));
x.Add(new XElement("Nickname", "good"));
x.Add(new XElement("Gift", "c#"));
XDOC.Descendants("Friends").Single().Add(x);
XDOC.Save(fStream);
但我得到以下输出。
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<Friends>
<Friend>
<Name>Safiq</Name>
<Like>Char</Like>
<Unlike>anger</Unlike>
<Nickname>good</Nickname>
<Gift>c#</Gift>
</Friend>
</Friends>
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<Friends>
<Friend>
<Name>Safiq</Name>
<Like>Char</Like>
<Unlike>anger</Unlike>
<Nickname>good</Nickname>
<Gift>c#</Gift>
</Friend>
<Friend>
<Name>Safiq</Name>
<Like>Char</Like>
<Unlike>anger</Unlike>
<Nickname>good</Nickname>
<Gift>c#</Gift>
</Friend>
</Friends>
哪里出错了?