【发布时间】:2013-02-27 09:40:22
【问题描述】:
我有一个这样的 XML 文件:
<file name="picture1.jpg"/>
<file name="file1.txt"/>
<folder name="subfolder">
<file name="picture2.jpg"/>
<file name="file2.txt"/>
<folder name="anotherfolder">
<file name="file3.txt"/>
</folder>
</folder>
<folder name="anotherfolder">
</folder>
需要这样排序:
<folder name="anotherfolder">
</folder>
<file name="file1.txt"/>
<file name="picture1.jpg"/>
<folder name="subfolder">
<folder name="anotherfolder">
<file name="file3.txt"/>
</folder>
<file name="file2.txt"/>
<file name="picture2.jpg"/>
</folder>
我要排序的代码是:
public static XDocument Sort(XDocument file)
{
return new XDocument(Sort(file.Root));
}
private static XElement Sort(XElement element)
{
XElement newElement = new XElement(element.Name,
from child in element.Elements()
orderby child.Name.ToString()
select Sort(child));
if (element.HasAttributes)
{
foreach (XAttribute attrib in element.Attributes())
{
newElement.SetAttributeValue(attrib.Name, attrib.Value);
}
}
return newElement;
}
它完成了工作......但只是部分。它根据与 FOLDER 分开的名称属性对 FILE 进行排序。我希望将它们一起考虑用于排序的 xml。应该怎么做?
【问题讨论】:
标签: c# xml sorting linq-to-xml xelement