我已经通过以下代码编写了xml
if (!File.Exists("d:\\s.xml"))
{
XmlTextWriter textWriter = new XmlTextWriter("d:\\s.xml", null);
textWriter.WriteStartDocument();
textWriter.WriteStartElement("node");
textWriter.WriteStartElement("zone");
textWriter.WriteStartElement("dt");
textWriter.WriteStartElement("Mn");
textWriter.WriteString("m1");
textWriter.WriteEndElement();
textWriter.WriteStartElement("Dist");
textWriter.WriteString("Colony");
textWriter.WriteEndElement();
textWriter.WriteEndElement();
textWriter.WriteEndDocument();
textWriter.Close();
}
将输出显示为
<?xml version="1.0"?>
<Node>
<Zone>
<Dt>
<mn>m1</mn>
<Dist>Colony</Dist>
</Dt>
</Zone>
</Node>
现在我需要将以下xml附加到已存在的xml文件
<Dt1>
<mn>m1</mn>
<Dist>Colony</Dist>
</Dt1>
答案 0 :(得分:2)
我将使用Linq2Xml
回答var xml = new XElement("Node",
new XElement("Zone",
new XElement("Dt",
new XElement("mn1", "m1"),
new XElement("Dist", "Colony")
)
)
);
var str1 = xml.ToString();
xml.Descendants("Zone")
.First()
.Add(new XElement("Dt1",
new XElement("mn1", "m1"),
new XElement("Dist", "Colony")));
var str2 = xml.ToString();
xml.Save(filename);
答案 1 :(得分:0)
我不知道你想在哪里添加下一个节点,但我想你想保留你发布的XML文件的结构。如果是这种情况,并扩展Jon Skeet的答案,你可以用XElement做到这一点:
var zone = new XElement(
"Zone",
new XElement(
"Dt",
new XElement("Mn", "m1"),
new XElement("Dist", "Colony")));
var xml = new XElement("Node", zone);
// append new nodes here
zone.FirstNode.AddAfterSelf(
new XElement(
"Dt",
new XElement("Mn", "m1"),
new XElement("Dist", "Colony")));
// save file
xml.Save("d:\\s.xml");