我不需要任何人为我编写此解决方案 - 只是希望能得到有关最佳方法的指导。我正在使用C#代码在VS2015中处理.aspx文件。
我找到了无数的线程来解释如何排序XML文件中的节点。但是,我没有找到任何关于如何根据共同的子节点属性对具有相同结构的多个XML文件进行排序的线程。
我的情况:我有一个包含数百个XML文件的目录,文件名分别为0001.xml到6400.xml。每个XML文件具有相同的结构。我想根据子节点的属性对文件进行排序(而不是节点)。
每个XML文件都有一个“item”父节点,并且具有子节点“year”,“language”和“author”,以及其他节点。例如:
<item id="0001">
<year>2011</year>
<language id="English" />
<author sortby="Smith">John F. Smith</author>
<content></content>
</item>
如果我想按照item/author节点的@sortby属性的字母顺序而不是按顺序0001到6400列出文件,该怎么办?
我有一个想法,那就是创建一个临时XML文件,从每个XML文件中收集所需信息。然后,我可以对临时XML文件进行排序,然后循环遍历节点以按正确顺序显示文件。类似这样...
XDocument tempXML = new XDocument();
// add parent node of <items>
string[] items = Directory.GetFiles(directory)
foreach (string item in items)
{
// add child node of <item> with attributes "filename", "year", "language", and "author"
}
// then sort the XML nodes according to attributes
这有意义吗?有没有更聪明的方法来做到这一点?