FoxPro Club Главная

Конференция Решения Фотоальбом Сайт М.Дроздова Статьи Файловый архив Книга Visual FoxPro 9.0 Русский Help для Visual FoxPro
Пользователей: 9209
Вход
класс для работы с XML

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


 
Прислал: Владимир Хитяев   Категория: Foxpro и другие приложения


класс для работы с 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

 
Сделайте оценку этого решения Плохо Удовлетворительно Так себе Хорошо Отлично Текущая оценка: (4.669) Вложение [3.93]kb
Дополнения пользователей
класс для работы с XML
[+][?]
Agishev Baiguzha
15.12.03 07:09:57

А можно пример?
[Дополнить]



© 2000-2017 Fox Club 
При размещении любых материалов с сайта на других ресурсах- прямая ссылка на www.foxclub.ru обязательна
Яндекс.Метрика