powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Export/Import Global to nested XML
14 сообщений из 14, страница 1 из 1
Export/Import Global to nested XML
    #35014946
MaxG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите, пожалуйста новичку. Нужно экспортировать и импортировать глобал в/из xml следующего вида:

<PROJECT>
<ITEMS>
<ITEM 1>
<INDEX 1>
<NAME>MyKey1</NAME>
</INDEX 1>
<DATA Values="My values">
<VALUE1>my value 1</VALUE1>
<VALUE2>my value 2</VALUE1>
</DATA>
</ITEM 1>
<ITEM 2>
...
</ITEM 2>
...
</ITEMS>
</PROJECT>

без создания дополнительных классов (пример экспорта классов есть в документации).
Очень признателен всем, кто ответит.
...
Рейтинг: 0 / 0
Export/Import Global to nested XML
    #35014978
VadimF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посмотрите на документацию класса %XML.Writer (Документация Cache' -> Class Reference).
С помощью него Вы можете легко импортировать XML.

Экспорт произвольного XML-документа можно реализовать с помощью встроенного в Cache' SAX-парсера.

Посмотрите документацию Cache' по работе с XML . Там есть обе темы.

Вадим
...
Рейтинг: 0 / 0
Export/Import Global to nested XML
    #35014983
VadimF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Немного неправильно написал.
%XML.Writer - экспортировать XML-документ
SAX-парсер - импортировать XML-документ.

Вадим
...
Рейтинг: 0 / 0
Export/Import Global to nested XML
    #35015131
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MaxG , почему теги <ITEM> все разные? Правда тогда <PROJECT> нафик не нужен

Кто это делал такой xml?
----------
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
Export/Import Global to nested XML
    #35015416
MaxG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
@ krvsa - xml такого вида является заданным входным файлом программы, которая должна обрабатывать данные, экспортированные из глобала. Следует сгенерировать этот файл и заполнить данными из глобала и затем обработанные программой данные импортировать назад в глобал. Теги <ITEM> все одинаковые <ITEM 1>, <ITEM 2>, ... и каждый <ITEM> содердит вложенные теги.

@ VadimF - Спасибо, попробую на основе этой документации - она, судя по линку, от cache2007, а у меня установлена 5.0.21 и этой документации ещё нет.
...
Рейтинг: 0 / 0
Export/Import Global to nested XML
    #35016344
Не могли бы вы привести пример структуры глобала, для которого надо наладить импорт/экспорт? Просто в виде перечня узлов.

Можете также обратиться к консультанту InterSystems, который отвечает за вашу компанию.

---------
http://writeimagejournal.com - InterSystems Russia Technology Blog.
...
Рейтинг: 0 / 0
Export/Import Global to nested XML
    #35017042
MaxG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
структура глобала:

^MYGLOBAL("Index1",Index2,Origin)="MyOriginText 12"
^MYGLOBAL("Index1",Index2,New1)="MyTextNew 1"
^MYGLOBAL("Index1",Index2,New2)="MyTextNew 2"
...

структура XML:

<PROJECT>
<ITEMS>
<ITEM 1>
<LOCATION>
<TARGET>Index1</TARGET>
<KEY>Index2</KEY>
</LOCATION>
<ORIGIN>"MyOriginText 12"</ORIGIN>
<DATA NewIndex="New1">
<VALUE>MyTextNew 1</VALUE1>
</DATA>
<DATA NewIndex="New2">
<VALUE>MyTextNew 2</VALUE1>
</DATA>
</ITEM 1>
<ITEM 2>
...
</ITEMS>
</PROJECT>
...
Рейтинг: 0 / 0
Export/Import Global to nested XML
    #35017594
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MaxG , это кто же такое удумал?
<ORIGIN> значит так оформляется а <DATA> уже подругому...
Код: plaintext
<TARGET>Index1</TARGET>
У всех одинаковый?
Так <ITEM> у вас с цифрами или нет?
----------
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
Export/Import Global to nested XML
    #35018038
MaxG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все теги <ITEM> - одинаковые, т.е. без цифр.
Значения Index1 не одинаковы (Index1 задаётся как параметр).
...
Рейтинг: 0 / 0
Export/Import Global to nested XML
    #35018580
Вот этот Origin (кстати, он все-таки "Origin", т.е. значение индекса одинаковое для всех item'ов?), из-за того, что находится на одном уровне с коллекцией элементов, портит жизнь при обходе - неизвестно, в какой позиции при переборе узлов он вылезет, и его надо обрабатывать отдельно.
---------
http://writeimagejournal.com - InterSystems Russia Technology Blog.
...
Рейтинг: 0 / 0
Export/Import Global to nested XML
    #35018914
MaxG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Значения (строки), которые стоят в 3м индексе, т.е. "Origin", "New1", "New2", "New3",... заданы заранее и не меняются для всех item'ов. Изменяются только 1й и 2й индексы (строки) и, естественно, содержимое ("MyOriginText x y", "MyTextNew x y z"):

^MYGLOBAL("Index1","Index2_1","Origin")="MyOriginText 1 2_1"
^MYGLOBAL("Index1","Index2_1","New1")="MyTextNew 1 2_1 1"
^MYGLOBAL("Index1","Index2_1","New2")="MyTextNew 1 2_1 2"

^MYGLOBAL("Index1","Index2_2","Origin")="MyOriginText 1 2_2"
^MYGLOBAL("Index1","Index2_2","New1")="MyTextNew 1 2_2 1"
^MYGLOBAL("Index1","Index2_2","New2")="MyTextNew 1 2_2 2"

Соответственно:

<PROJECT>
<ITEMS>
<!----------------Item 1---------------->
<ITEM>
<LOCATION>
<TARGET>Index1</TARGET>
<KEY>Index2_1</KEY>
</LOCATION>
<ORIGIN>"MyOriginText 1 2_1"</ORIGIN>
<DATA NewIndex="New1">
<VALUE>MyTextNew 1 2_1 1</VALUE>
</DATA>
<DATA NewIndex="New2">
<VALUE>MyTextNew 1 2_1 2</VALUE>
</DATA>
</ITEM>
<!----------------Item 2---------------->
<ITEM>
<LOCATION>
<TARGET>Index1</TARGET>
<KEY>Index2_2</KEY>
</LOCATION>
<ORIGIN>"MyOriginText 1 2_1"</ORIGIN>
<DATA NewIndex="New1">
<VALUE>MyTextNew 1 2_2 1</VALUE>
</DATA>
<DATA NewIndex="New2">
<VALUE>MyTextNew 1 2_2 2</VALUE>
</DATA>
</ITEM>
</PROJECT>
...
Рейтинг: 0 / 0
Export/Import Global to nested XML
    #35022292
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MaxG , так вам простонужно написать программку которая это все запишет в глобал?
----------
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
Export/Import Global to nested XML
    #35024609
MaxG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
krvsa, ну да, я пытаюсь написать програмку, которая всё это запишет в XML, а потом вернёт всё разад в глобал с изменёнными значениями.
Проблема в том, что в документации исходят из того, что экспорт/импорт производится из классов, тогда всё выглядит просто, т.к. используется проекция класса на XML.
В моём случае есть "голый" глобал и только средства COS (с которым я пытаюсь самостоятельно разобраться) вместе с классом XMLWriter - тогда всё достаточно геморойно.

В общем, экспорт я уже (почти) написал, а до импорта ещё не дошёл. По ходу дела всё время возникают вопросы, а документация ещё та...
...
Рейтинг: 0 / 0
Export/Import Global to nested XML
    #35029312
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MaxGэкспорт я уже (почти) написал
Думаю, что "экономичнее" было воспользоваться стандартным
Код: plaintext
d $system.OBL.Export("<список_элементов>","<имя_файла>")
MaxGа до импорта ещё не дошёл
Тогда и импорт свелся бы к стандартному
Код: plaintext
d $system.OBL.Load("<имя_файла>","<список_флагов>")
Хотя и с вашим форматом (кто же его всетаки придумал?) особых проблем не вижу...
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Export/Import Global to nested XML
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]