2014-01-29 4 views
4

С моим ниже кодом я могу загрузить один файл Xml в XmlDocument xWorkload.Как загрузить все файлы 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 файлы в папке, и я хочу, чтобы загрузить все файлы Xml в xWorkload и хранить эти XML-файлы в строке Как мне это сделать? Может ли это быть сделано в wpf, используя только XmlDocument (не Linq). плз предложить

ответ

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. Также я не мог видеть тег WPF в вопросе –

+0

In, if (result == DialogResult.OK) , Sytem.Nullable не содержит определения OK – user42067

Смежные вопросы