Letysite.ru

IT Новости с интернет пространства
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Импорт xml в access

Поддержка XML в программе Access

Язык XML — это прекрасный способ обмена данными между разными компьютерными про­граммами. Но что делать с программой Access, у которой уже есть собственный отличный способ хранения данных? Ситуация такова: сегодня все больше и больше компаний приме­няют язык XML для обмена данными. Когда компании обмениваются коммерческими зака­зами, например, или новостные организации посылают очерки, или фирмы по торговле не­движимостью перечисляют предлагаемую для продажи собственность, очень вероятно, что они используют формат на основе XML. Если вы хотите отправить ваши данные Access в такие системы, нужен способ извлечения их из специализированного ACCDB-формата БД и помещения их в простой и понятный XML-формат.

Рис. 19.11. Пример данных, готовых к новой жизни в XML-формате

Когда экспортируется приведенная таблица, программа Access создает XML-документ, который выглядит следующим образом:

Thin-Jam Hex Nut 7

Thin-Jam Hex Nut 8

Независимо от экспортируемой таблицы программа Access всегда следует одним и тем же правилам:

■ корневой элемент документа называется ;

■ программа Access создает отдельный элемент для каждой строки таблицы, используя имя таблицы. В данном примере это означает, что вы получите один элемент

для каждой записи;

■ внутри каждой записи Access создает отдельный элемент для каждого поля. В данном
примере вы получите поля ,

В подобной структуризации XML-документа нет ничего плохого. Однако поскольку у вас нет возможности изменять структуру, вы потерпите неудачу, если захотите использо­вать другую программу, которая принимает XML-документы с другим форматом. Например, ваша программа рассчитывает, что корневой элемент будет назван

, а не или она принимает несколько иную вложенность элементов. Незначи­тельные нестыковки, подобные описанным, могут полностью нарушить работу приложения с XML-обработкой.

Печально, но эту проблему не обойти. Для того чтобы использовать XML-файлы про­граммы Access, нужно специально разрабатывать программу, распознающую эту структуру, или применять другое средство для преобразования XML-файла в стандарт, который вам на самом деле нужен. Средство экспорта в XML-файл программы Access позволяет начать, но не предоставляет вариантов для представления данных.

Примечание

Если вам необходимо отфильтровать записи или не интересующие вас поля либо переимено­вать поля, задачу можно решить с помощью запроса. Просто создайте запрос, который пред­ставляет информацию нужным вам образом, и затем экспортируйте результаты запроса (вместо целой таблицы).

Те же ограничения возникают, когда импортируется XML-содержимое. Программа Access рассчитывает на получение XML-содержимого с жестким табличным форматом. Если вы попытаетесь представить ей XML-документ другого типа, то получите сообщение об ошибке.

Экспорт в XML-файл

Теперь, когда вы познакомились с языком XML и рассмотрели ограничения, установленные в программе Access, вы готовы применить его для собственных нужд. Далее перечислены необходимые для этого действия.

1. Выберите на ленте Внешние данные →Экспорт → Дополнительно → XML-файл(External Data Export More XML File).

Начинается знакомый вам процесс экспорта.

2. Введите имя файла, который хотите создать, и нажмите кнопку ОК.

Программа Access предполагает, что будет использоваться имя таблицы. Например, если экспортируется таблица Orders,рекомендуемое программой имя XML-файла — Оrders.xml.

3. Выберите типы файлов, которые хотите создать (рис. 19.12):

данные (XML)(Data (XML)) — создается XML-файл с действительным содержимым из всех записей вашей таблицы;

схема данных (XSD)(Schema (XSD)) — создается файл схемы с расширением xsd. Схема не содержит никаких данных, а хранит краткое определение, описывающее вашу таблицу и содержащиеся в ней поля. У схемы два назначения — ее можно передать профессиональным программистам, чтобы они знали, какого типа XML-документ ждать от программы Access, или использовать ее для создания новой пустойтаблицы в другой БД Access;

Рис. 19.12.Обычно создается XML-файл, хранящий реальные данные из вашей таблицы. Кроме того, можно создать два дополнительных файла поддержки

4. Если вы хотите экспортировать связанные таблицы в одном и том же XML-документе, щелкните мышью кнопку Дополнительно. (More Options. ).

На экране появится окно Экспорт XML(Export XML) с дополнительными параметрами. Большинство из этих параметров лучше всего оставить гуру XML. Но наиболее интересна вкладка Данные(Data) — она позволяет экспортировать связанные табли­цы (рис. 19.13).

Например, при экспорте таблицы Ordersу вас есть две возможности.

Экспорт других подчиненных таблиц. Можно было бы также экспортировать записи таблицы OrderDetailsдля каждого заказа. Программа Access вкладывает в XML-файл элементы OrderDetailsвнутрь соответствующего элемента Orders.

Экспорт связанных записей из главной таблицы. Можно было бы, например, экспортировать записи из таблиц OrderStatusи CreditCards.Эти записи появляются под заголовком [Данные подстановки]([Lookup Data]), поскольку они предоставляют дополнительные данные, связанные с заказом (в данном случае текущий статус заказа и кредитную карту, применяемую для оплаты заказа).

Читать еще:  Ide dma transfer access

Рис. 19.13.На вкладке Данныеотображается дерево с экспортируемой таблицей в корне, а ветви дерева представляют связанные таблицы. Если вы хотите включить данные из этих связанных таблиц, просто установите флажок, расположенный рядом с каждой из них

Примечание

Когда экспортируются главные или родительские таблицы, данные не вкладываются в XML-документе, поскольку это могло бы привести к дублированию (например, если у нескольких за­казов один и тот же статус или в них применяется одна и та же кредитная карта). Вместо этого они добавляются после основной экспортируемой таблицы.

5. Щелкните мышью кнопку ОК.

Программа Access создаст файлы, выбранные в пункте 3.

6. Если вы хотите повторить процесс экспорта несколько раз, установите флажок Сохранить шаги экспорта(Save export steps).

Щелкните мышью кнопку Закрыть(Close) для возврата в окно программы Access.

Импорт из XML-файла

Программа Access делает очень легким процесс импорта XML-данных, при условии что у них структура, на которую рассчитывает программа. Для проверки на практике выберите только что экспортированную таблицу и заново импортируйте ее в новую БД. Вот как это делается.

1. Выберите на ленте Внешние данные → Импорт → Импорт XML-файла(External Data Import XML File).

Начнется знакомый процесс импорта.

2. Если создается новая таблица и для ваших данных есть схема, задайте имя файла, содержащего схему. Если у вас уже есть таблицы, которые хотите использовать, или под рукой нет схемы, перейдите сразу к пункту 6.

Можно импортировать непосредственно из XML-файла, но всегда лучше применить схему, если таблица создается впервые, поскольку в схеме хранится информация о типах данных всех полей. Эти сведения гарантируют большее соответствие создаваемой табли­цы исходной таблице, которую вы экспортировали.

3. Щелкните мышью кнопку ОК.

Рис. 19.14.В данном примере Access корректно устанавливает, что ваш файл схемы определяет структуру таблиц Orders, OrderDetails, OrderStatusи CreditCards.Можно раскрыть каждую таблицу и увидеть содержащиеся в ней поля

4. Щелкните мышью кнопку ОК.

С помощью данных схемы программа Access создает новую пустую таблицу с коррект­ной структурой. Теперь можно заполнять ее данными.

Примечание

Если таблица с таким же именем уже существует, Access добавит в конец имени число, чтобы отличать новую таблицу (например, Products1, Products2и т. д.).

5. Щелкните мышью кнопку Закрыть(Close), чтобы вернуться в окно программы Access.

6. Выберите на ленте Внешние данные →Импорт → Импорт XML-файла(External Data Import XML File).

Теперь, когда ваши таблицы созданы, можно импортировать реальные данные.

7. Задайте имя XML-файла, содержащего данные, которые хотите импортировать, и щелкните мышью кнопку ОК.

Программа Access отобразит структуру таблицы на основе XML-данных вашего файла, Эта структура должна точно соответствовать структуре таблицы, которую вы хотите создать или в которую хотите добавить данные.

8. Выберите один из вариантов операции импорта.

o Выбор переключателя добавить данные в таблицы(Append Data to Existing Table(s)) заставляет программу Access найти таблицу с таким же именем и добавить в нее все данные. Этот вариант применяется, если используемая таблица уже существует.

o Выбор переключателя структура и данные(Structure and Data) создает таблицу и за­тем заполняет ее данными.

o Выбор переключателя только структура(Structure Only) создает несуществующую до этого момента таблицу, но не импортирует никаких данных.

Примечание

Если в процессе импорта вам нужно создать таблицу, всегда лучше применить файл схемы для ее создания (как описано в пунктах 1—5), поскольку в схеме содержатся более точные сведения о типах данных.

9. Щелкните мышью кнопку ОК.

Access заполнит таблицы данными из вашего XML-файла.

Если вы хотите повторять процесс импорта несколько раз, установите флажок Сохра­нить шаги импорта(Save export steps).

Импорт файлов XML в Access DB с несколькими таблицами

У меня есть куча (плоских) XML файлов, таких как:

Теперь мои фактические файлы XML имеют слишком много узлов, поэтому их нельзя импортировать в одну таблицу (из-за ограничения 255 столбцов), поэтому мне нужно разделить данные на несколько таблиц. Я уже создал таблицы вручную, поэтому теперь все, что нужно сделать, — это сопоставить имена узлов со столбцами в каждой из таблиц и скопировать данные.

Он делает это только для одной таблицы с именем ‘SomeName’, но оставляет все остальные таблицы нетронутыми.

Я не уверен, как правильно получить доступ к файлам import my XML во всех таблицах. Я также уже пытался создать поле UID в каждой таблице и связать их (поскольку UID является уникальным для каждого набора данных XML), но это также не произвело впечатления на доступ.

Читать еще:  Типы полей в access

Я пытался найти хоть какую-то информацию по этой проблеме, но пока ничего не нашел.

Я был бы очень благодарен за любую помощь или подсказки.

1 Ответ

Поскольку вам требуется более 255 полей, вам придется сделать это с помощью кода. Вы можете загрузить свой XML в MSXML2.DOMDocument , собрать подмножество значений узлов, построить оператор INSERT и выполнить его.

Вот процедура, которую я проверил на ваших образцовых данных. Это довольно уродливо, но работает. Откомментируйте строку CurrentDb.Execute после изменения strTagList , strFieldList , strTable и cintNumTables и просмотрите инструкции INSERT . Добавьте дополнительные блоки Case , если вам нужно загрузить более 2 таблиц.

Вот 4 ссылки, которые я нашел полезными для VBA/XML/DOM:

Похожие вопросы:

Я хочу интегрировать в свой код VBA инструкцию по импорту XML файлов. В ветке else моего состояния я хочу добавить команду для импорта файлов XML. Не могли бы вы предложить мне что-нибудь.

Я использую базу данных с несколькими таблицами в своем приложении. У меня есть парсер XML, который должен записывать данные в две таблицы во время синтаксического анализа. Я создал два адаптера.

Как создать XML/XSD из SQL таблицы с несколькими таблицами то, что я хочу сделать, это создать схему XML из базы данных (или схемы базы данных) Этот пост имеет интересный код Особенно DataSet.

Итак, я пытаюсь найти способы облегчить рекомбинацию данных в excel листах с помощью access. То, что я пытаюсь сделать, это взять несколько файлов excel, которые все одинаково отформатированы и.

Мне нужна помощь, объясняя с кодом, чтобы я мог понять, как работать с несколькими таблицами: есть несколько таблиц под названием квартиры, Недвижимость, категории, застройщики столбцы квартир (id.

Я хотел бы играть с дампом данных переполнения стека в Oracle. Формат, который они мне дали, находится в XML, и он очень большой (один файл XML составляет около 3 ГБ). Я хотел бы сделать импорт этих.

У меня есть скрипт с несколькими сотнями запросов sql, которые мне нужно выполнить на Access DB. Поскольку выполнение запросов sql в Access-это IMO quit неудобно, вы можете выполнять только по.

Мы думаем о growing немного MS-Access DB с несколькими таблицами, формами и запросами для нескольких пользователей. (Использование другого бэк-энда — это еще один, но более долгосрочный вариант.

У меня есть таблица excel, которая имеет 5 разных вкладок. Я хотел бы создать эту таблицу в access, представленную 5 различными таблицами. Моя первая попытка-это импортировать файлы. У меня есть.

Я импортирую некоторые документы XML (созданные в InfoPath) в MS Access с помощью XSLT. Он работает нормально, за исключением одного вопроса. Многие вложенные элементы (дочерние таблицы) содержат.

Импорт данных из XML-файла в БД Access – №70437

Фрилансеры предложат решение вашей задачи уже через несколько минут!

Публикация заказа на фриланс бирже не займет много времени.

Техническое задание
По импорту данных из XML-файла в БД Access.

Импорт осуществляется запуском скрипта или с применением XSLT-преобразования (на выбор), по файлам расположенным в определенной директории. Запуск осуществляется вручную.
Функции импорта должны быть реализованы в среде Ассеss (рекомендация) или на любом иной языке, в случае реализации на любой версии VB следует обеспечить передачу исходных текстов.
Импорт осуществляется в существующую БД, структура таблиц не подлежит изменению.

Структура БД. Состав и типы полей приведены в приложении . см прикрепленный файл. Имена полей БД соответствуют элементам структуры в xml файле.

2. Описание структуры XML-файла.

I. Назначение и способы обработки файла CONS*.USR.
Для облегчения сбора информации о комплектах систем, установленных у пользователей (а теперь, и для сведений об актуальности обновления ИБ, входящих в состав этих систем), семейство USR файлов включает в себя USR файл комплекта. Название данного файла — CONS#K_DDDDD_N.USR
где K — код «основной»(см. сноску ) системы (одна или две цифры), DDDDD — номер дистрибутива «основной» системы, N — номер компьютера данного дистрибутива.
Рассмотрим применение нового файла CONS*.USR, отражающего состояние всего комплекта. При запуске утилиты UInf3000.EXE в директории, содержащей файлы CONS*.USR, собранные от пользователей, они расшифровываются в файлы CONS*.XML. Далее данные файлы XML импортируются средствами СУБД, на котором написана база пользователей конкретного РИЦ.

II. Рассмотри формат CONS*.XML файла на следующем примере:

Пусть у пользователя установлен комплект из 3-х систем, КонсультантБухгалтер: ВерсияПроф, МоскваПроф, ДеловыеБумаги.
Новые элементы для удобства чтения выделены розовым шрифтом. XML комментарии вида , помогающие понять пример, в реальном XML файле отсутствуют.

Читать еще:  Sharepoint книга на русском

Импорт данных из XML-файла в БД Access – №70437

Фрилансеры предложат решение вашей задачи уже через несколько минут!

Публикация заказа на фриланс бирже не займет много времени.

Техническое задание
По импорту данных из XML-файла в БД Access.

Импорт осуществляется запуском скрипта или с применением XSLT-преобразования (на выбор), по файлам расположенным в определенной директории. Запуск осуществляется вручную.
Функции импорта должны быть реализованы в среде Ассеss (рекомендация) или на любом иной языке, в случае реализации на любой версии VB следует обеспечить передачу исходных текстов.
Импорт осуществляется в существующую БД, структура таблиц не подлежит изменению.

Структура БД. Состав и типы полей приведены в приложении . см прикрепленный файл. Имена полей БД соответствуют элементам структуры в xml файле.

2. Описание структуры XML-файла.

I. Назначение и способы обработки файла CONS*.USR.
Для облегчения сбора информации о комплектах систем, установленных у пользователей (а теперь, и для сведений об актуальности обновления ИБ, входящих в состав этих систем), семейство USR файлов включает в себя USR файл комплекта. Название данного файла — CONS#K_DDDDD_N.USR
где K — код «основной»(см. сноску ) системы (одна или две цифры), DDDDD — номер дистрибутива «основной» системы, N — номер компьютера данного дистрибутива.
Рассмотрим применение нового файла CONS*.USR, отражающего состояние всего комплекта. При запуске утилиты UInf3000.EXE в директории, содержащей файлы CONS*.USR, собранные от пользователей, они расшифровываются в файлы CONS*.XML. Далее данные файлы XML импортируются средствами СУБД, на котором написана база пользователей конкретного РИЦ.

II. Рассмотри формат CONS*.XML файла на следующем примере:

Пусть у пользователя установлен комплект из 3-х систем, КонсультантБухгалтер: ВерсияПроф, МоскваПроф, ДеловыеБумаги.
Новые элементы для удобства чтения выделены розовым шрифтом. XML комментарии вида , помогающие понять пример, в реальном XML файле отсутствуют.

Импорт данных из xml в базу данных сайта

Я в базах данных не силен, а тут возникла задача:
Есть xml-файл, содержащий много много структурированной информации вида

Вопрос: как эту информацию проще всего перегнать в базу данных сайта?
Типа, создать табличку blocks с полями id, date, title, link и перекачать в нее все данные из исходного файла.
Ну чтоб не вручную вбивать.
На сайте стоит phpMyAdmin.

Есть подозрение, что должны быть некие средства автоматизации этого процесса. Но гугл в поисках не помог. 😉

А так я бы написал скрипт, используя, к примеру, класс SimpleXMLElement — получаем данные из XML и помещаем их в БД.

matroskin8
Напишите, если не сложно. Я с этим делом не сталкивался.

Если вытащить данные из XML в массив будет достаточно?

Думаю, да. Дальше я справлюсь.

Ну и отлично
В принципе, быстренько набросал. Думаю, все должно быть понятно — код старался максимально комментировать. Даже тестово поместил в БД — все работает. Единственное — это возможная проблема с кодировками. XML не очень дружит с кириллицей, лучше работать с юникодом. Код тестировал — все работает.
XML:

$file = ‘file.xml’; // файл XML
$read = simplexml_load_file($file); // получаем объект класса

//arr($read); // распечатываем массив $read

$xml = $read->block; // $xml — объект-массив, вложенные теги — его свойства

$count = count($xml); // кол-во элементов массива

for($i = 0; $i id. ‘
‘; // вывод id
echo $xml[$i]->date. ‘
‘; // вывод date
echo $xml[$i]->title. ‘
‘; // вывод title
echo $xml[$i]->link. ‘
‘; // вывод link
/* можно поместить в привычные переменные */
$id_xml = $xml[$i]->id;
$date_xml = $xml[$i]->date;
$title_xml = $xml[$i]->title;
$link_xml = $xml[$i]->link;

Ну и отлично
В принципе, быстренько набросал. Думаю, все должно быть понятно — код старался максимально комментировать. Даже тестово поместил в БД — все работает. Единственное — это возможная проблема с кодировками. XML не очень дружит с кириллицей, лучше работать с юникодом. Код тестировал — все работает.

matroskin8,
спасибо, все получилось
Правда пришлось помучиться с кодировками, пока не пришло в голову заменить
на

А, точно — эт я уже ошибся в запросе с кодировкой
Кстати, надо будет проверить завтра и дописать в запрос условие:

Интересно выведет ли ошибку с такой записью.

Проверил. условие или срабатывает при такой записи:

и выводится сообщение о невозможности установить кодировку соединения. Вот что значит не проверять такие простенькие запросы — а я обычно никогда и не проверяю их. теперь будет мне наука

Ссылка на основную публикацию
Adblock
detector