2014-01-29 54 views
4

使用我的下面的代碼,我可以在XmlDocument xWorkload中加載一個Xml文件。如何將所有Xml文件從一個文件夾加載到XmlDocument

XmlDocument xWorkload = new XmlDocument(); 

     private void button1_Click(object sender, RoutedEventArgs e) 
     { 
      var outputxml = new StringBuilder(string.Empty); 

      Microsoft.Win32.OpenFileDialog dlg = new Microsoft.Win32.OpenFileDialog(); 
      dlg.FileName = "demo"; // Default file name 
      dlg.DefaultExt = ".xml"; // Default file extension 
      dlg.Filter = "Xml documents (.xml)|*.xml"; // Filter files by extension 


      var result = dlg.ShowDialog(); //Opens the dialog box 
      if (result == true) 
      { 
       xWorkload.Load(dlg.FileName); 
       string Path = dlg.FileName.Replace(dlg.SafeFileName, ""); 
      } 
     } 

假設,有一個文件夾中的多個XML文件,我想加載xWorkload的所有XML文件,而這些XML文件存儲在一個字符串 我怎麼辦呢?可這是在wpf中只使用XmlDocument(不是Linq)完成。 PLZ建議

回答

6

您可以使用FolderBrowserDialog選擇XML文件的根目錄下,然後:

FolderBrowserDialog fd = new FolderBrowserDialog(); 
DialogResult result = fd.ShowDialog(); 

if(result == DialogResult.OK) 
{ 
    string[] files = Directory.GetFiles(fd.SelectedPath) 
           .Where(p => p.EndsWith(".xml")) 
           .ToArray(); 
    foreach(var path in files) 
    { 
     XDocument xDoc = XDocument.Load(path); 
     // read Xml file 
    } 
} 
+0

它的WPF應用程序。 – user42067

+0

這沒關係。添加一個對System.Windows.Forms.dll的引用,那麼你可以使用FolderBrowserDialog.Also我看不到在問題 –

+0

問題中的WPF標籤如果(result == DialogResult.OK) ,Sytem.Nullable 不包含OK的定義 – user42067

相關問題