将此 XML 文件解析为字典

本文关键字:字典 XML 文件 将此 | 更新日期: 2023-09-27 17:57:00

我对XML序列化很陌生,到目前为止,我一直在使用XDocument并遍历XML文件来加载东西。我知道有一种方法可以序列化XML文件,最近我遇到了以下XML:

<?xml version="1.0" encoding="utf-8" ?>
<XnaContent>
<Asset Type="System.Collections.Generic.Dictionary[System.String, Microsoft.Xna.Framework.Rectangle]">
<Item><Key>frame0</Key><Value>0 0 128 128</Value></Item>
<Item><Key>frame1</Key><Value>128 0 128 128</Value></Item>
</Asset>
</XnaContent>

并且一直在试图弄清楚我如何加载它并将其解析为字典,顶部说明资产类型=System.collections.generic.dictionary 似乎表明我应该能够快速将其转换为字典。

所以我的问题是我该怎么做?我可以轻松地遍历 xml 结构并将键与值匹配,但看起来会有更好的方法吗?

将此 XML 文件解析为字典

这出奇地简单。将 XML 文件添加到内容项目中。保留默认导入程序("XML 内容")和处理器(无)。

XNA 内容管道会为您构建XNB文件。

然后只需像加载任何其他资产一样加载ContentManager.Load

var myContent = Content.Load<Dictionary<string, Rectangle>>("MyXmlFile");

编辑:刚刚浏览了这篇文章和这篇文章,我怀疑你想使用IntermediateSerializerXmlImporter

不是XNA开发人员,我不清楚它们是如何组合在一起的,但希望这足以让你入门。

当然,如果这只是 XML 的一个示例,并且您实际上想要序列化不属于 XNA 的数据,则可能需要查看XmlSerializer 。就我个人而言,我发现使用 LINQ to XML 手动控制序列化更简单 - 以这种方式管理不同的版本等更容易 - 但在某些情况下XmlSerializer会更方便。