Как конвертировать xml в dbf

Convert XML file to DBF

I’m trying to convert an XML file to DBF. Right now I do this manually, opening the XML file in Excel 2003 and saving it as a DBF 4 file type. This is a boring and time consuming process, made worse by the fact that neither Office 2007, nor Office 2008 for Mac allow saving as DBF any more.

I’d like a way to automate this, if possible. Do you know any way of actually doing this? I don’t even know what programming language to use for this.

4 Answers 4

Use a XmlReader, format your data and use OleDb to save to a dbf file. Here you can find a connectionstring for dbf: www.connectionstrings.com

Visual FoxPro has a command XMLTOCURSOR() that converts XML to a Visual FoxPro cursor. This cursor can be transformed into a disk-based DBF using the COPY TO command.

One caveat, the complexity of the XML might force a different approach with XMLAdapter, especially if there is hierarchical (nested) XML. The XMLAdapter in Visual FoxPro 9 has enhancements to deal with this format.

If opening the XML file in Excel 2003 and saving it as a DBF 4 file type works you what than may you should just emulate this process via a program. There are at least two approaches:

1) VBA running whithin Excel:

The other approach is using VBA which runs within Excel and automates the stuff you do manually. To get a feeling for it. You could run the Macro recorder and do the transformation once manually again. Afterwards you see the VBA code which emulates the things you are doing. With little tweaking you should be able to automate the whole process.

2) External Application: Basically you create an excel object in a separate Windows Application which encapsulates Excel and you do the stuff you would do manually via this object remotely.

Источник

Import any XML to DBF

Probably you often need to convert an XML file or a folder with XML files into one or several DBF files. The problem is that the XML structure, its hierarchy and nesting levels differ from file to file. In this article, we’ll take a detailed look on how to import an XML file of ANY structure to a flat DBF table.

A new feature called Import Custom XML was implemented in DBF Commander Professional version 2.7 (build 40). This command is available via the command line interface. The syntax is as follows:

As you can see, there are four parameters:

DBF fields definition, or How to create a map-file

It is always better to learn something by using an example. In our situation, we need some well-known XML. Let’s take an RSS news feed XML file (available here):

Как конвертировать xml в dbf. . Как конвертировать xml в dbf фото. Как конвертировать xml в dbf-. картинка Как конвертировать xml в dbf. картинка

Suppose that each element should be represented as one row in the resulting DBF file. So our file will contain four records.

Как конвертировать xml в dbf. result dbf file structure. Как конвертировать xml в dbf фото. Как конвертировать xml в dbf-result dbf file structure. картинка Как конвертировать xml в dbf. картинка result dbf file structure

Click OK. The DBF file will be created, and now it can be used as a resulting file for our import from the XML process. You can use any available field types: Character, Integer, Numeric, Date, etc.

To create a map-file based on the resulting file, click the Export Structure tool button (see the picture above). When the Save dialog opens, choose the path and filename, and then save the structure as a DBF file.

Matching XML tags to DBF fields

We have to do one more thing yet: define the XML tags that should be inserted in the fields of the resulting DBF file.

Now fill every row of the new «xmltagname» field with the XML nodes path (separated by «->«) that should be inserted into the corresponding field in the DBF file:

Как конвертировать xml в dbf. map file. Как конвертировать xml в dbf фото. Как конвертировать xml в dbf-map file. картинка Как конвертировать xml в dbf. картинка map file

Well, that’s all. Now we can run the import from XML to DBF itself. Execute the following command from the command line, or from a BAT file:

As a result, we’ll get the new file «D:\dbf\rss.dbf» that contains the imported XML data:

Как конвертировать xml в dbf. result dbf file. Как конвертировать xml в dbf фото. Как конвертировать xml в dbf-result dbf file. картинка Как конвертировать xml в dbf. картинка result dbf file

You can download all the files used in this conversion from here.

Источник

Конвертер XML to DBF

Скачать файлы

Специальные предложения

Как конвертировать xml в dbf. f71a8c4e70c0ff03708038e2b0210df8. Как конвертировать xml в dbf фото. Как конвертировать xml в dbf-f71a8c4e70c0ff03708038e2b0210df8. картинка Как конвертировать xml в dbf. картинка f71a8c4e70c0ff03708038e2b0210df8

Как конвертировать xml в dbf. 9c2808762ec294cd4c55532520b9c521. Как конвертировать xml в dbf фото. Как конвертировать xml в dbf-9c2808762ec294cd4c55532520b9c521. картинка Как конвертировать xml в dbf. картинка 9c2808762ec294cd4c55532520b9c521

Как конвертировать xml в dbf. 895fb1e0f7afc3c0ed0d73bf5ee9d9d0. Как конвертировать xml в dbf фото. Как конвертировать xml в dbf-895fb1e0f7afc3c0ed0d73bf5ee9d9d0. картинка Как конвертировать xml в dbf. картинка 895fb1e0f7afc3c0ed0d73bf5ee9d9d0

Как конвертировать xml в dbf. egais promo. Как конвертировать xml в dbf фото. Как конвертировать xml в dbf-egais promo. картинка Как конвертировать xml в dbf. картинка egais promo

Как конвертировать xml в dbf. b34b292ed32e9501f98cc31df406353e. Как конвертировать xml в dbf фото. Как конвертировать xml в dbf-b34b292ed32e9501f98cc31df406353e. картинка Как конвертировать xml в dbf. картинка b34b292ed32e9501f98cc31df406353e

Как конвертировать xml в dbf. 789363929b9f37ddc5641a069a5fe52e. Как конвертировать xml в dbf фото. Как конвертировать xml в dbf-789363929b9f37ddc5641a069a5fe52e. картинка Как конвертировать xml в dbf. картинка 789363929b9f37ddc5641a069a5fe52e

Как конвертировать xml в dbf. 5b19cd6c4494a88b2abefce64a1b7565. Как конвертировать xml в dbf фото. Как конвертировать xml в dbf-5b19cd6c4494a88b2abefce64a1b7565. картинка Как конвертировать xml в dbf. картинка 5b19cd6c4494a88b2abefce64a1b7565

Как конвертировать xml в dbf. 199e2be4fd21dd8f4209d8ec34616c76. Как конвертировать xml в dbf фото. Как конвертировать xml в dbf-199e2be4fd21dd8f4209d8ec34616c76. картинка Как конвертировать xml в dbf. картинка 199e2be4fd21dd8f4209d8ec34616c76

Обновление 02.07.14 19:39

Код открыт Не указано

Как конвертировать xml в dbf. bd0d60aca52d15b5df1a0d31c0af59ca. Как конвертировать xml в dbf фото. Как конвертировать xml в dbf-bd0d60aca52d15b5df1a0d31c0af59ca. картинка Как конвертировать xml в dbf. картинка bd0d60aca52d15b5df1a0d31c0af59ca

См. также

Навигатор по конфигурации базы 1С 8.3 Промо

Универсальная внешняя обработка для просмотра метаданных конфигураций баз 1С 8.3. Отображает свойства и реквизиты объектов конфигурации, их количество, основные права доступа и т.д. Отображаемые характеристики объектов: свойства, реквизиты, стандартные рекизиты, реквизиты табличных частей, предопределенные данные, регистраторы для регистров, движения для документов, команды, чужие команды, подписки на события, подсистемы. Отображает структуру хранения объектов базы данных, для регистров доступен сервис «Управление итогами». Платформа 8.3, управляемые формы. Версия 1.1.0.87 от 02.12.2021

28.10.2018 46670 422 ROL32 72

Управление платформенными обработками (расширение для типовых) [update 8.3.20]

Расширение использует недокументированную возможность для управления платформенными обработками. Например, чтобы подменить «Активные пользователи» или доработать «Конструктор запросов».

07.10.2021 4145 7 SeiOkami 24

Работа с картами в 1С на примере бесплатной библиотеки Leaflet

Разработка функционала отображения и выбора пунктов доставки на карте прямо в 1С с помощью бесплатной библиотеки Leaflet. Тестирование производилось на платформе 8.3.15.1534 на тонком клиенте.

31.03.2021 11550 36 Parsec1C 14

Универсальная обработка переноса данных из основной конфигурации в расширение

Обработка предназначена для разработчиков, для тех случаев, когда ранее дописанный функционал, перенесен в расширение и появляется необходимость перенести данные из объектов основной конфигурации в объекты расширения. Перенос осуществляется настройкой соответствия объектов основной конфигурации объектам расширения.

05.10.2020 11066 67 biz-intel 71

Удаление и/или копирование сохраненных в 1С настроек (например настроек печати табличных форм) Промо

Иногда нужно удалить сохраненную в 1С «покореженную» настройку или скопировать «удачную» другому пользователю.

01.09.2012 67727 1383 AnryMc 46

Улучшенная обработка универсального обмена данными в формате XML (УФ)

Улучшенная обработка «Универсальный обмен данными» с полноценными возможностями СКД для выборки данных (не только для отборов).

23.06.2020 13704 144 Lem0n 1

Панель #Расширение объекта: Редактор, Права, Поиск, Сторно, Обмен

Панель команд текущего объекта (документа, справочника и т.д.) со следующим возможностями: Редактор реквизитов, таблиц и движений текущего объекта, Анализ прав доступа к текущему объекту, Поиск ссылок на объект с отборами, Сторно движений документа, Выгрузка/загрузка текущего объекта между базами. Реализована всплывающей панелью в форме объекта. Подключается как расширение конфигурации (*.cfe) либо отдельными обработками.

01.05.2020 15806 113 sapervodichka 1

Яндекс сервисы [Расширение]

Расширение для работы с Яндекс-сервисами (предиктор,переводчик,проверка орфографии)

24.10.2019 16109 11 noprogrammer 12

Групповая корректировка записей регистров (Управляемое приложение) v 2.1 Промо

Обработка предназначена для групповой корректировки записей регистров Накопления, Сведений и Бухгалтерии. Разработана специально для Управляемого приложения.

06.09.2013 69510 330 kser87 59

Работа с файлами (обычная и управляемая форма)

Нужно загрузить файл с клиента на сервер или же, наоборот, файл загрузить с сервера на клиент, а впридачу все это на web-клиенте, да еще и асинхронно? Нет ничего проще, читай далее, как это сделать!

10.06.2019 43112 232 Xershi 77

Электронная таблица средствами 1С (Версия 2.0)

Функционал электронной таблицы для программ на платформе 1С реализован на основе табличных документов. Функционал реализован в виде обработки. Большую часть формы обработки занимают листы (закладки) с табличными документами, которые выполняет роль электронной таблицы. Листы могут быть добавлены, удалены или переименованы. Ограничение по количеству листов определяется возможностью платформы. В формулах электронной таблицы можно использовать любые языковые конструкции, процедуры и функции 1С, ссылки на другие ячейки электронной таблицы расположенные в том числе и на других листах. Допустимо обращаться к ячейкам электронной таблицы по имени именованной области. В случае использования в формулах электронной таблицы данных из самой таблицы пересчет зависимых ячеек с формулами производится автоматически. Электронную таблицу можно сохранить в файл.

23.04.2019 24391 81 user706545_kseg1971 40

Источник

Как конвертировать xml в dbf

Вопрос действительно интересный! 🙂 Схема получения dbf-таблиц могла бы быть следующей:

Итак, попробуем пройти все шаги, разбирая конкретный пример данных в MS Excel 2003. Допустим, что требуется получить dbf- таблицы для данных, которые в MS Excel выглядят так:

Как конвертировать xml в dbf. . Как конвертировать xml в dbf фото. Как конвертировать xml в dbf-. картинка Как конвертировать xml в dbf. картинка

По этим данным, требуется получить три VFP- таблицы связанные отношениями:

Экспорт данных Excel- таблицы в xml- файл Как конвертировать xml в dbf. top. Как конвертировать xml в dbf фото. Как конвертировать xml в dbf-top. картинка Как конвертировать xml в dbf. картинка top

Как конвертировать xml в dbf. . Как конвертировать xml в dbf фото. Как конвертировать xml в dbf-. картинка Как конвертировать xml в dbf. картинка

при этом, на возникший запрос о несоответствии формата следует ответить утвердительно. После чего мы получим файл с данными таблицы в xml- формате примерно такой структуры:

здесь незначимая для нас информация упущена и оставлено только то, что нам необходимо для дальнейшей работы. Обратите внимание на следующие моменты:

Удаление «области имён по умолчанию» Как конвертировать xml в dbf. top. Как конвертировать xml в dbf фото. Как конвертировать xml в dbf-top. картинка Как конвертировать xml в dbf. картинка top

Признаки отбора «прикладных данных» Как конвертировать xml в dbf. top. Как конвертировать xml в dbf фото. Как конвертировать xml в dbf-top. картинка Как конвертировать xml в dbf. картинка top

Относительно «признаков выбора», требуемых нам «прикладных данных», глядя на содержимое полученного xml- файла, можно заметить следующее:

Далее, мы постараемся воспользоваться этими обстоятельствами, чтобы организовать обработку данных с помощью XSLT- преобразования.

XSLT- преобразование из «плоского» XML в «структурированный», согласно группировки данных Как конвертировать xml в dbf. top. Как конвертировать xml в dbf фото. Как конвертировать xml в dbf-top. картинка Как конвертировать xml в dbf. картинка top

Здесь предполагается, что во входном потоке отсутствуют «разрывы» в смысле групп/подгрупп. Т.е. данные во входном потоке упорядочены в строгом соответствии с требованиями группировок, а также и то, что во входном потоке нет данных, не принадлежащих ни группам, ни их подгруппам. Основная трудность в реализации этой схемы заключается в проверке условий на момент открытия новой группы/подгруппы, позволяющих ответить на вопрос: а есть ли ранее открытые аналогичные группы/подгруппы, которые следует закрыть при открытии новых?

При вышеупомянутых предположениях ответ на этот вопрос достаточно прост:

Источник

Преобразование XML в DBF

Если СокрЛП(ОсновнойНод)=»» Тогда
Сообщить(«Введите основной нод!»,СтатусСообщения.Внимание);
Возврат;
КонецЕсли;

//Основная процедура
Процедура КонвертироватьИзXMLВDBF(ПутьКФайлу)

//формируем дерево значений из XML
ФайлXML = Новый ЧтениеXML;
Попытка
ФайлXML.ОткрытьФайл(ПутьКФайлу);
Исключение
Сообщить(«Файл не открывается: «+ПутьКФайлу,СтатусСообщения.Внимание);
Возврат;
КонецПопытки;

ДеревоXML = Новый ДеревоЗначений;
ДеревоXML.Колонки.Добавить(«ИмяУзла»);
ДеревоXML.Колонки.Добавить(«Значение»);

//инициализируем отбор по основному ноду
ПараметрыОтбора = Новый Структура;
ПараметрыОтбора.Вставить(«ИмяУзла», ВРЕГ(СокрЛП(ОсновнойНод))); // основной нод данных
НайденныеСтроки = ДеревоXML.Строки.НайтиСтроки(ПараметрыОтбора,Истина);

Если НайденныеСтроки.Количество()=0 Тогда
Возврат;
иначе
//идентифицируем поля
ДБФ= Новый XBase;
ДБФ.Кодировка=КодировкаXBase.OEM;
//ДБФ.поля.Добавить(«S_POL»,»C»,80);

тзПоля = Новый ТаблицаЗначений;
тзПоля.Колонки.Добавить(«ИмяПоля»);
тзПоля.Колонки.Добавить(«ТипПоля»);
тзПоля.Колонки.Добавить(«ДлинаПоля»);
тзПоля.Колонки.Добавить(«ДлинаПоля2»);

Для каждого СтрДер Из НайденныеСтроки Цикл

СтруктураДанных = Новый Структура();
СтруктураДанных = ПолучитьСтруктуруКоллекцииСтрокДереваXML(СтруктураДанных,СтрДер.Строки,Истина,,Истина);

Для каждого стр Из СтруктураДанных Цикл

НайдСтр = тзПоля.Найти(стр.Ключ,»ИмяПоля»);
Если НайдСтр=Неопределено Тогда
НовСтр = тзПоля.Добавить();
НовСтр.ИмяПоля = стр.Ключ;

//Для каждого стр Из ДеревоXML.Строки Цикл
//
// ЭлементыФормы.ДеревоXML.Развернуть(стр,Истина);
//
//КонецЦикла;

Функция ЕстьЧтоЧитать(ФайлXML)
Если ФайлXML.Прочитать() Тогда
Возврат Истина;
Иначе
//Предупреждение(«Файл прочитан полностью!»);
Возврат Ложь;
КонецЕсли;
КонецФункции

Функция ПолучитьСтруктуруКоллекцииСтрокДереваXML(СтруктураДанных,СтрокиДанных,НаследоватьРодителя=Ложь,Родитель=»»,ДляДБФ=Ложь) Экспорт

Для каждого стр Из СтрокиДанных Цикл

Если стр.Строки.Количество()>0 Тогда
//вложенные ноды
СтруктураДанных = ПолучитьСтруктуруКоллекцииСтрокДереваXML(СтруктураДанных,стр.Строки,НаследоватьРодителя,стр.ИмяУзла,ДляДБФ);
КонецЕсли;

Процедура ПрочитатьАтрибутыУзлаXML(файлXML,СтрокиДерева)
Пока файлXML.ПрочитатьАтрибут() Цикл
СтрокаДерева = СтрокиДерева.Добавить();
СтрокаДерева.ИмяУзла = файлXML.Имя;
СтрокаДерева.Значение= файлXML.Значение;
//СтрокаДерева.Картинка = БиблиотекаКартинок.Свойства;
КонецЦикла;
КонецПроцедуры

Функция ВыбратьФайлXML() Экспорт

Режим=РежимДиалогаВыбораФайла.Открытие;
ВыбратьФайл = Новый ДиалогВыбораФайла(Режим);
Фильтр = «Файлы XML | *.xml»;
ВыбратьФайл.Фильтр=Фильтр;
ВыбратьФайл.Заголовок = «Выберите файл XML»;
Если ВыбратьФайл.Выбрать() Тогда
Возврат ВыбратьФайл.ПолноеИмяФайла;

Иначе
Сообщить(«Файл не выбран!»);
Возврат «»;
КонецЕсли;

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *