Загрузка файлов XML в структуры VB.Net - PullRequest
2 голосов
/ 20 августа 2010

У меня есть много (15-20) различных XML-файлов, которые мне нужно загрузить в VB.Net. Они разработаны так, как они будут в базе данных; они разработаны в Access и массово экспортируются в файлы XML. Каждый файл представляет собой отдельную таблицу в базе данных.

Теперь мне нужно загрузить эту информацию в VB.Net. Изначально я хотел бы использовать DAO и обращаться к MDB напрямую через запросы, но это будет невозможно, так как я уверен, что проект будет легко перенесен на XNA / C # в будущем . (Xbox 360 не может использовать MDB, поэтому я бы скорее решил эту проблему, чем в будущем).

Итак, я застрял сейчас, пытаясь понять, как свести воедино все эти XML-файлы. Я пытался использовать Фабрики, чтобы разобрать каждый из них в отдельности. Например, если три XML-файла содержат данные для «символьного» класса, я передаю экземпляр Character каждой фабрике XML, и классы применяют необходимые данные.

Хотя я пытаюсь обойти это, так как поддержание множества различных классов с избыточным кодом является проблемой. к тому же это сложно отлаживать. Поэтому я пытаюсь найти новое решение.

Единственное, о чем я могу думать сейчас, - это использование System.Reflection, где я анализирую каждый член класса / структуры, которую я создаю, а затем использую имена этих членов для чтения данных из этого элемента. файла XML.

Однако это предполагает, что у каждого члена структуры / класса есть соответствующий элемент в файле XML, и наоборот.

Ответы [ 2 ]

2 голосов
/ 20 августа 2010

Linq-to-XML - хорошее решение (и еще лучше в VB.NET с такими вещами, как литералы XML и глобальные пространства имен). Обработка нескольких XML-файлов в виде таблиц БД иногда может быть сложной, но, безусловно, не невозможной. Я думаю, я бы начал с JOIN (хотя в названии есть "C #", сэмплы также в VB) ..

1 голос
/ 20 августа 2010

Если вы знаете схему файлов XML - вы можете создать классы .NET, которые могут десериализовать один из этих файлов XML в экземпляр объекта .NET.

Вы также можете использовать xsd.exe(поставляется с загрузкой Windows SDK) для создания определения класса .NET для вас, если у вас есть файл XSD (или вы можете написать XSD проще, чем вы можете написать сериализуемый класс .NET).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...