класс для работы с XML

Класс предназначен для настраиваемого извне формата таблиц для преобразования плоских курсоров в xml

класс для работы с XML

На сайте в конференции обсуждался вопрос "Зачем нужен XML".
Классическое мнение - его используют для передачи данных в
многоплатформенных приложениях. Это неоспоримо, хотя на мой взляд
очень много избыточности (теги и прочее), особенно передача через интернет.
Встечаются задачи (и очень
часто), когда в таблицу необходимо положить очень много полей, и поля
эти могут меняться во времени, как количественно, так и качественно. Вот тут XML
и выручает. В таблице выделяется MEMO поле под XML код, и хранится в
нем любое количество разнообразных полей, причем для каждой записи в
таблице, набор полей в XML коде может быть разный. Для работы с таким
полем предлагается следующий класс, позволяющий получать XML код из
именованного массива и упаковывать данные массива в XML код.
Для распаковки XML используется Microsoft.XMLDom.
Пример

  LOCAL oXML oXML = NEWOBJECT('xml_object', 'xml_object.vcx') ***Создание таблицы CREATE CURSOR TestXML (Id I, TextXML M) ***Добавление свойств в объект oXML oXML.Set_property('Text_1', 'Тестовый текст 1') oXML.Set_property('Text_2', 'Тестовый текст 2') oXML.Set_property('Text_3', 'Тестовый текст 3') oXML.Set_property('Integer_1', 123) oXML.Set_property('Integer_2', 456) oXML.Set_property('Integer_3', 789) oXML.Set_property('Numeric_1', 1.23) oXML.Set_property('Numeric_2', 4.56) oXML.Set_property('Numeric_3', 7.89) oXML.Set_property('Logic_1', .T.) oXML.Set_property('Logic_2', .F.) ***Добавление записи в таблицу (идентификатор и MEMO поле с XML данными) APPEND BLANK replace Id WITH 1, TextXML WITH oXML.get_xml() ?TestXML.TextXML  ***То что хранится в поле TextXML: *** ***Тестовый текст 1 ***Тестовый текст 2 ***Тестовый текст 3 ***123.00 ***456.00 ***789.00 ***1.23 ***4.56 ***7.89 ***1 ***0 ***  ***Очистка объекта oXML (удаление всех ранее добавленных свойств) oXML.RemoveAll() ***Загрузка XML кода в объект oXML oXML.load_xml(TestXML.TextXML) ***Получение данных из объекта oXML ?oXML.get_property('Text_1') ?oXML.get_property('Text_2') ?oXML.get_property('Text_3') ?oXML.get_property('Integer_1') ?oXML.get_property('Integer_2') ?oXML.get_property('Integer_3') ?oXML.get_property('Numeric_1') ?oXML.get_property('Numeric_2') ?oXML.get_property('Numeric_3') ?oXML.get_property('Logic_1') ?oXML.get_property('Logic_2') USE IN TestXML 

Автор: Владимир Хитяев
0

Автор публикации

не в сети 1 год

admin

0
Комментарии: 0Публикации: 109Регистрация: 10-12-2000
Вложенные файлы
#
Тип файла
Размер
Название
1 .zip 3,93 КБ 355xml
Оставить комментарий
Авторизация
*
*
Генерация пароля