Я не работал с KML, но библиотеки Linq to XML по сути являются заменой модели XmlDocument, XmlElement и т. Д. В System.Xml. С точки зрения памяти, я не знаю, лучше ли они, чем ваше текущее решение.
Один из подходов, который я часто использую, - это создание набора классов данных, представляющих документ Xml, а затем использование XmlSerializer для преобразования объектов в Xml. Я честно, что эта реализация не очень полезна для памяти, и я думаю, что для ваших целей это может иметь смысл.
Вот небольшой пример. Скажем, я хочу создать следующий XML:
<Packages>
<Package Name="A">
</Package>
<Package Name="B">
<Dependencies>
<Dependency Package="C" />
<Dependency Package="A" />
</Dependencies>
</Package>
<Package Name="C">
<Dependencies>
<Dependency Package="A" />
</Dependencies>
</Package>
</Packages >
Вы можете создать следующие классы:
class Package
{
private List<Dependency> dependencies = new List<Dependency>();
public string Name { get; set; }
public List<Dependency> Dependencies { get { return dependencies; } set { dependencies = value; } }
}
class Dependency
{
public string Package { get; set; }
}
Используя класс System.Xml.Serialization.XmlSerializer, вы можете превратить список в Xml, указанный выше.
Поэтому, если вы создаете объектную модель для KML, которая легко сопоставляется с фактическим KML, как в приведенном выше примере, это должна быть довольно простая реализация.
person
Szymon Rozga
schedule
24.02.2009