XDocument一次从多个文件夹加载多个XML文件

时间:2014-09-05 10:52:01

标签: c# xml visual-studio-2013 linq-to-xml

如何使用XDocument.Load(路径)一次从多个文件夹加载多个XML文件?

我想要这样,以便我可以在网页中显示每个XML文件。

文件结构类似于XMLFiles - >年 - >月份 - > files.XML。我希望他们一次加载。

我正在使用带有MVC 4的Visual Studio 2013。

2 个答案:

答案 0 :(得分:1)

我认为这个代码没有@ har07那么多,但它是一样的:

string mainPath = "path where you have all xml"
string[] paths = Directory.GetFiles(mainPath, "search pattern as you need", SearchOption.AllDirectories);

foreach(var path in paths){
XDocument xDoc = XDocument.Load(path);
//something you want to do with xml
}

我认为你不会找到另一种解决方案。

答案 1 :(得分:0)

您可以修改评论中链接的问题的答案,如下所示:

string xmlFiles = "path_to_XMLFiles_folder/XMLFiles";
                          //get all folders within XMLFiles folder. the years
string[] files = Directory.GetDirectories(xmlFiles)
                          //get all folders within each year. the months
                          .SelectMany(Directory.GetDirectories)
                          //get all files within each montsh.
                          .SelectMany(Directory.GetFiles)
                          .Where(f => f.EndsWith(".xml"))
                          .ToArray();
foreach(var path in files)
{  
    XDocument xDoc = XDocument.Load(path);
    //process each XML file
}

我不确定这是否符合您的最终目标,但无论如何,这就是您在评论中提出的问题。