将XML反序列化为Dictionary<string, string>。

6

我有一些XML;

<data>
  <name1>James</name1>
  <name2>John</name2>
  etc..
</data>

name1,name2等名称可以是任何东西,我希望能够将此xml转换为字典。使用内置的.net序列化是否可行?

谢谢, 詹姆斯。

编辑:理想情况下,我不想使用linq。是否可能将整个元素数组序列化为字符串?这样,我最终会得到一个包含所有子元素标签和数据的字符串对象“Data”?

2个回答

11

不行,但你可以使用Linq-to-Xml 来实现:

XDocument.Load([file path, stream, whatever]).Descendants("data").Descendants()
    .ToDictionary(element => element.Name, element => element.Value)

更新: 正如问题编辑中所述,如果不能使用 Linq-to-Xml,则需要实现 IXmlSerializable 来自定义 XML 序列化(您可能想要查看此其他 Q&A:custom xml serialization)。


0

您可以使用带有方法ToDictionary()的LINQ to XML;


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接