我有一些XML;
<data>
<name1>James</name1>
<name2>John</name2>
etc..
</data>
name1,name2等名称可以是任何东西,我希望能够将此xml转换为字典。使用内置的.net序列化是否可行?
谢谢, 詹姆斯。
编辑:理想情况下,我不想使用linq。是否可能将整个元素数组序列化为字符串?这样,我最终会得到一个包含所有子元素标签和数据的字符串对象“Data”?
我有一些XML;
<data>
<name1>James</name1>
<name2>John</name2>
etc..
</data>
name1,name2等名称可以是任何东西,我希望能够将此xml转换为字典。使用内置的.net序列化是否可行?
谢谢, 詹姆斯。
编辑:理想情况下,我不想使用linq。是否可能将整个元素数组序列化为字符串?这样,我最终会得到一个包含所有子元素标签和数据的字符串对象“Data”?
不行,但你可以使用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)。
您可以使用带有方法ToDictionary()
的LINQ to XML;