当前位置:  开发笔记 > 编程语言 > 正文

将xml转换为已排序的字典

如何解决《将xml转换为已排序的字典》经验,为你挑选了3个好方法。

我有一个类似于这样的xml文件:



    foo
    bar
    bar


我想把它放入一个字典(排序)作为键值对.即:123:foo,456:bar ...等

钥匙是未知的.

我怎样才能做到这一点?



1> Johnno Nolan..:

这看起来像Linq到Xml的工作

    static void Main(string[] args)
    {            
        XDocument yourDoc = XDocument.Load("the.xml");
        var q = from c in yourDoc.Descendants("resource")
                orderby (int) c.Attribute("key")
                select c.Attribute("key").Value + ":" + c.Value;

        foreach (string s in q)
            Console.WriteLine(s);                            
        Console.ReadLine();
    }



2> Robert Rossn..:

如果不使用Linq并且只使用以下内容,这实际上更容易XmlDocument:

SortedDictionary myDict = new SortedDictionary();
foreach (XmlElement e in myXmlDocument.SelectNodes("/data/resource"))
{
   myDict.Add(e.GetAttribute("key"), e.Value);
}



3> gk...:

试试这个,

string s = "foobarbar";
XmlDocument xml = new XmlDocument();
xml.LoadXml(s);
XmlNodeList resources = xml.SelectNodes("data/resource");
SortedDictionary dictionary = new SortedDictionary();
foreach (XmlNode node in resources){
   dictionary.Add(node.Attributes["key"].Value, node.InnerText);
}

推荐阅读
ERIK又
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有