Экспорт & импорт в нужном Xml формате

Тема в разделе "Lotus - Программирование", создана пользователем ToxaRat, 7 апр 2010.

  1. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.047
    Симпатии:
    18
    В общем самые разнообразные доки нужно экспортнуть в весьма специфический XML со своими правилами и разметко.
    И вот тут меня начинает колбасить, хочется сделать и красиво и настраиваемо.
    Нужно - экспортнуть/импортнуть в один XML: входящий документ со всеми его резолюциями и всеми сопутствующими аттачами
    Что выбрать то?
    первоначально думал возьму экпортну средствами парсера а потом попереименовываю теги на нужные а остальной мусор поудаляю
    Теперь думаю, что нужно взять всё под контроль и формировать програмно по тегу, что лучше делать в такой ситуации?
     
  2. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.083
    Симпатии:
    300
    проблема актульна в срезе потребления ресурсов...
    стили требуют полной загрузки (памяти)..., прямая замена (SAX - на-лету, в потоке) может дать невалидный ХМЛ на выходе (если стр-ра сложная)
     
  3. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.047
    Симпатии:
    18
    загрузку я может быть еще бы оптимизировал как нибудь, если бы хоть увидел нормальные пример подхвата и выгрузки в XML аттача
     
  4. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.083
    Симпатии:
    300
    не понял про выгрузку аттача...
     
  5. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.047
    Симпатии:
    18
    lmike
    нужно в требуемый XML еще и все аттачи из дока выгрузить, КАК это сделать самому? :)
     
  6. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.083
    Симпатии:
    300
    я не понимаю - что значит выгрузить в ХМЛ аттач...
    цель какая, в аттача ХМЛ тоже?
     
  7. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.047
    Симпатии:
    18
    lmike
    цель, контролируемо собрать XML согласно спецификации и так же туда слить все аттачи что подходят под критерии

    есть пример чтобы в XML просто слить одно поле и один аттач и конкретного дока?
    я вот не находу примеров где на срипте я могу взять аттач из дока и напрямую слить его в XML или же выложить во временную папку и слить этот аттач(его бинарное содержимое) в XML?
     
  8. K-Fire

    K-Fire Гость

    А в чем проблема? Берешь аттач, в base64 кодируешь и прямо вставляешь в xml-строку. Если xml получен DXL-экспортом, то там вроде уже в base64 должно всё быть.
     
  9. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.047
    Симпатии:
    18
    примерчик дай :rolleyes:
     
  10. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.083
    Симпатии:
    300
    пример чего - при операции экспорта (из хэлпа) уже получишь хмл с аттачем унутря (в виде base64)
     
  11. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.047
    Симпатии:
    18
    всё верно, а теперь представь что мне туда нужно вставить ЕЩЕ один аттач, из другого документа, как быть?
     
  12. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.083
    Симпатии:
    300
    допиши в конец (перед закрывающим док </document>, в нужных тегах), хинт ставь где хошь (унутря РТ)
    дергалки аттачей - я давал, здесь, ссылки, там и LAX и VDT (мои экперименты)

    теги:
    Код (Text):
        String txtStartFileItem="<item name='$FILE' summary='true' sign='true' seal='true'>"+
    "<object><file hosttype='msdos' compression='none' flags='storedindoc' name='"+zipFileName+"'>";
    String txtStartFileData="<filedata>";
    String txtEndFileItem="</filedata></file></object></item>";
     
  13. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.047
    Симпатии:
    18
    lmike
    как выглядят теги я знаю, мне интересно есть ли какой метод у парсера, чтобы можно было добавить ЕЩЕ аттачи?
     
  14. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.083
    Симпатии:
    300
    разумеется нет
     
  15. K-Fire

    K-Fire Гость

  16. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.047
    Симпатии:
    18
    если кому интересно то сделал в самой простой форме ;)
    Код (LotusScript):
    Forall in1 In vFiles ' проходимся по файлам
    If Len(in1)>0 Then
    Set object = Doc.GetAttachment(in1)
    If Not object Is Nothing Then
    s1 = pathname & in1
    Call object.ExtractFile(s1) ' выкладываем
    If stream2.Open(s1, "binary") Then ' удалось открыть
    Do
    buffer = stream2.Read(32767)
    Call Gstream.Write(buffer)
    Loop Until stream2.IsEOS
    Call stream2.Close
    End If
    End If
    End If
    End Forall
     
Загрузка...

Поделиться этой страницей