我有一个我要打开并写入的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中添加新的多边形,所以我必须读它,然后在最后一个位置添加一个多边形。 ¿我该怎么做?
答案 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