我整个周末都在搜索,但是没有找到任何结果,我正在寻找一个程序或C#代码,我选择一个文件,我可以选择一个节点,我想要的子节点要订购的母节点,
<SelectedProfile>
<Name>Default</Name>
<InstalledAssemblies>
<LeagueSharpAssembly>
<InstallChecked>true</InstallChecked>
<InjectChecked>true</InjectChecked>
<Status>Ready</Status>
<DisplayName>Library - Common</DisplayName>
</LeagueSharpAssembly>
</InstalledAssemblies>
</SelectedProfile>
我想选择“LeagueSharpAssembly”,并通过“DisplayName”命令所有“LeagueSharpAssembly”
你们有什么了解的吗?
答案 0 :(得分:3)
使用Linq to XML
var result = x.Descendants("LeagueSharpAssembly")
.OrderBy(r => r.Descendants("DisplayName").Single().Value);
这个答案有效,但我首先误读了这个问题,所以查询应该是:
var result=x.Descendants("LeagueSharpAssembly")
.OrderBy(r=>r.Element("DisplayName").Value);
这是由@RichardSchneider首先发布的,所以如果你要使用Linq to XML,他的答案应该被接受。
答案 1 :(得分:1)
您可以使用Linq和XML来选择和排序元素,然后使用简单的foearch
来处理它们。
var doc = XDocument.Load("...");
var assemblies = doc.Descendants("LeagueSharpAssembly")
.OrderBy(r => r.Element("DisplayName").Value);
foreach (var a in assemblies)
{
Console.WriteLine("Assembly {0}", a.DisplayName);
}