gpt4 book ai didi

c# - 使用 Linq to XML 创建 KML

转载 作者:行者123 更新时间:2023-11-30 18:47:16 25 4
gpt4 key购买 nike

大约 9 个月前,我用 C# 创建了一组对应于 KML 2.2 元素的类。所以你可以做像 myPlacemark = new Placemark("name"); 这样的事情在内部,它使用 XmlDocument、XmlElement 等来创建各种节点和标记。这是一只内存 pig ,它可能会更快。不,我没有使用 XSD 生成类。

我看到有关于使用 Linq 读取和解析 KML 的帖子。但是,有没有人使用过 Linq to XML 来创建 KML?如果不是,您认为创建程序化广告的最佳方法是什么。易于使用一组类来抽象 KML?使用 Linq to XML 会提高性能吗?

最佳答案

不是 KML,但这是使用 System.Xml.Serialization 的示例

给定这两个类(具有属性)和初始化:

[XmlRoot("BookList")]
public class BookList
{
[XmlElement("BookData")]
public List<Book> Books = new List<Book>();
}

public class Book
{
[XmlElement("Title")]
public string Title { get; set; }
[XmlAttribute("isbn")]
public string ISBN { get; set; }
}

var bookList = new BookList
{
Books = { new Book { Title = "Once in a lifetime", ISBN = "135468" } }
};

您可以像这样序列化为 xml:

var serializer = new XmlSerializer(typeof(BookList));
using (var writer = new StreamWriter("YourFileNameHere"))
{
serializer.Serialize(writer, bookList);
}

Xml 的等效 Linq 看起来像这样(未测试)

XElement bookXML = 
new XElement("BookList",
from book in bookList.Books
select new XElement("BookData",
new XElement("Title", book.Title),
new XAttribute("isbn", book.ISBN)
)
);

结论,两者都比使用 XmlDocument 更简洁,XmlSerializer 更短,Linq to XML 为您提供了更大的灵 active (就您的类结构与 xml 结构的不同程度而言,XmlSerializer 非常“僵化”)。

关于c# - 使用 Linq to XML 创建 KML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/581865/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com