在C#中打开并编写一个xml文件

时间:2017-06-07 14:29:19

标签: c# xml

我有一个我要打开并写入的xml文件.xml文件具有以下结构:

 <?xml version="1.0" encoding="UTF-8"?>        
   <polygons>               
     <polygon name="polygon-1">        
         <point>    
            <x>38,241885</x>    
            <y>-5,965407</y>    
         </point>    
          <point>        
            <x>38,242251</x>        
            <y>-5,965423</y>        
         </point>        
    </polygon>
    <polygon name="polygon-2">
        .
        .
    </polygon>
  </polygons>   

我想在我的xml中添加新的多边形,所以我必须读它,然后在最后一个位置添加一个多边形。 ¿我该怎么做?

2 个答案:

答案 0 :(得分:1)

以下是使用xml linq

的一些不同方法
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Xml.Linq;

namespace ConsoleApplication59
{
    class Program
    {
        static void Main(string[] args)
        {
            string xmlHeader = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><polygons></polygons>";

            XDocument doc = XDocument.Parse(xmlHeader);
            XElement polygons = doc.Root;

            polygons.Add(new XElement("polygon", new object[] {
                new XAttribute("name","polygon-1"),
                new XElement("point", new object[] {
                    new XElement("x","38,241885"),
                    new XElement("y","5,965407")
                })
            }));

            XElement polygon = polygons.Element("polygon");

            XElement newPoint = new XElement("point", new object[] {
                    new XElement("x","38,241885"),
                    new XElement("y","5,965407")
                });

            polygon.Add(newPoint);

        }
    }
}

答案 1 :(得分:0)

您可以使用xsd.exe xml文件生成C#(多边形/点/等)代码(分步说明:https://msdn.microsoft.com/en-us/library/5s2x1sy7(v=vs.110).aspx)。

使用XmlSerializer将对象添加到poligons列表并序列化结构 https://msdn.microsoft.com/en-us/library/system.xml.serialization.xmlserializer(v=vs.110).aspx