gpt4 book ai didi

c# - 如何在 C# 中轻松排序 XML 文件?

转载 作者:行者123 更新时间:2023-11-30 21:47:55 24 4
gpt4 key购买 nike

我有给定的 XML:

<colors>
<green>150</green>
<red>18</red>
<blue>920</blue>
<orange>80</orange>
<purple>77</purple>
</colors>

我需要读取 XML 文件,然后对其进行排序以将其用作 C 头文件。

例如:

#define orange        80             // <orange>
#define red 18 // <red>

应该可以更改 XML 标记的顺序。

private void TranslateXmlToC(String path)   
{
XmlDocument doc = new XmlDocument();
doc.Load(path);

XmlNodeList list = doc.SelectNodes("//colors");

Console.WriteLine(list.Item(0).InnerXml);
}

此代码正确显示了所有标签和数据,但现在我想更改顺序。

最佳答案

这可能对你有用

var xml = new XmlDocument();
xml.LoadXml("<colors>" +
"<green>150</green>" +
"<red>18</red>" +
"<blue>920</blue>" +
"<orange>80</orange>" +
"<purple>77</purple>" +
"</colors>");

var lst = new Dictionary<string,int>();
foreach (XmlNode n in xml["colors"].ChildNodes)
lst.Add(n.Name, int.Parse(n.InnerText));

var sb = new StringBuilder();
foreach (KeyValuePair<string, int> n in lst.OrderBy(kvp => kvp.Value))
sb.AppendFormat("#define {0} {1} // <{0}>\n", n.Key, n.Value);

string result = sb.ToString();

结果(您可以使用 C# 字符串填充):

#define red   18    // <red>
#define purple 77 // <purple>
#define orange 80 // <orange>
#define green 150 // <green>
#define blue 920 // <blue>

关于c# - 如何在 C# 中轻松排序 XML 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34722840/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com