【问题标题】:Deserialize XML into Dictionary<string, string>将 XML 反序列化为 Dictionary<string, string>
【发布时间】:2012-02-09 11:28:46
【问题描述】:

我有一些 XML;

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

name1、name2 等可以是任何东西,我希望能够理想地将这个 xml 放入字典中,这可以使用内置的 .net 序列化吗?

谢谢, 詹姆斯。

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

【问题讨论】:

    标签: c# .net xml serialization


    【解决方案1】:

    不,但您可以使用 Linq-to-Xml 来这样做:

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

    更新: 正如 OP 在他的编辑中所说,如果无法使用 Linq-to-Xml,那么您需要自定义实现 IXmlSerializable 的 XML 序列化(您可能需要查看其他问答:custom xml serialization )。

    【讨论】:

      【解决方案2】:

      您可以通过方法ToDictionary() 使用LINQ to XML;

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-01-15
        • 2020-05-06
        相关资源
        最近更新 更多