2

目前我正在使用 XmlWriter 并想询问如何在现有的 XML 文件中写入,例如:

一个.xml

<info>
     <description>Test3</description>
     <loops>100</loops>
</info>

添加<Info>,例如

<name>Test1</name>

position of<name>没有任何作用,但最好写在 之前</info>,因此是最后一个元素。

<info>
     <description>Test3</description>
     <loops>100</loops>
     <name>Test1</name>
</info>

或者:

<info>
     <name>Test1</name>
     <description>Test3</description>
     <loops>100</loops>
</info>
4

2 回答 2

3

XmlWriter类速度很快,但只能在一个方向上逐个元素地编写。如果要编辑现有 XML,最简单的方法是使用 LINQ to XML:

var doc = XDocument.Parse(xml); // or XDocument.Load(xmlFilePath)
doc.Root.Add(new XElement("name", "Test1"));

doc.Save(xmlFilePath);
于 2012-08-26T01:26:38.377 回答
1

我不建议您使用 XmlReader 和 Writer,但如果您问... 例如

            XmlDocument d = new XmlDocument();
            d.Load("c:/a.xml");

            XmlNode root = d.FirstChild;
            if(root.HasChildNodes)
            {
                using(XmlWriter writer = new XmlTextWriter("c:/a.xml", Encoding.Default))
                {
                    writer.WriteStartDocument();
                    writer.WriteStartElement(root.Name);
                    foreach(XmlNode node in root.ChildNodes)
                    {
                        writer.WriteStartElement(node.Name);
                        writer.WriteValue(node.InnerText);
                        writer.WriteEndElement();

                        // writing new node after "loop" node
                        if (node.Name == "loop")
                        {
                            writer.WriteStartElement("name");
                            writer.WriteValue("test1");
                            writer.WriteEndElement();
                        }

                    }
                    writer.WriteEndElement();
                    writer.WriteEndDocument();
                }
            }
于 2012-08-26T01:31:29.370 回答