2010-12-05 4 views
0

Это мой первый пост, и я обеспокоен тем, что некоторые могут подумать, что я беспокоился о том, чтобы попытаться решить проблему самостоятельно, так что простите меня, если я надуюсь. В настоящее время я пытаюсь разработать набор функций для импорта XML-документа и создания из него базового объекта.Функция C# XML SelectNodes

В настоящее время у меня есть этот код для поиска всех xml-файлов в каталоге и отображения имен файлов в списке. В целом около 10 000 xml файлов, поэтому требуется некоторое время для загрузки.

public void CreateLibrary() 
{ 
     List<string> fixtureList = new List<String>(); 
     string[] dirs = Directory.GetFiles(@"C:\Windows.old\Users\Michael\Desktop\Application_ DEV\XMLData", "*.xml", 
            SearchOption.AllDirectories); 
foreach (string dir in dirs) 
{ 
      string fixture = System.IO.Path.GetFileName(dir); 


      lbxLibrary.Items.Add(fixture); 
} 

То, что я хотел бы случиться, когда пользователь выбирает новый элемент ListBox, URL-адрес для файла передается в функцию GetData. смотрите ниже:

события изменения выбора

private void lbxLibrary_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e) 
    { 
      Fixture fixture = new Fixture(); 
      lblFixtureName.Text = fixture.GetModelName("C:\Windows.old\Users\Michael\Desktop\Application_ DEV\XMLData\\ExampleData.xml"); 
    } 

функции GetModelName - это в другом классе.

 public string GetModelName(string url) 
    { 
     //Import fixture xml 
     XmlDocument xml = new XmlDocument(); 
     xml.LoadXml(url); 

     XmlNodeList xnList = xml.SelectNodes("/FixtureModel/"); 

     foreach (XmlNode xn in xnList) 
     { 
      ModelName = xn["ModelName"].InnerText; 
     } 

     return ModelName; 

    } 

В настоящее время в функции GetModelName возникает ошибка «Исправлена ​​ошибка XmlException».

Точная линия у меня возникли проблемы, по-видимому, где я прохожу расположение каталога в.

xml.LoadXml(url); 

Кто-нибудь есть какие-либо идеи о том, что я делаю неправильно.

ответ

0

1) LoadXml используется для анализа строки, содержащей XML-документ. Load используется для анализа XML, полученного из URL-адреса.

2) Вы неправильно экранируете символы в URL-адресе, как вы найдете, когда используете правильный метод. Либо двойную обратную косую черту, либо префикс строки с значком @.

+0

Получил эту работу отлично. Были некоторые другие ошибки, чтобы разобраться, и я все еще работаю над несколькими битками и бобами. Эта проблема решена. Приветствую вас за вашу помощь. – 2010-12-05 21:32:05