Dxl -> Xml

Тема в разделе "Lotus - Программирование", создана пользователем garrick, 28 май 2013.

  1. garrick

    garrick Lotus team
    Lotus team

    Регистрация:
    26 окт 2009
    Сообщения:
    773
    Симпатии:
    52
    Существуют ли какие-либо быстрые способы преобразования DXL в стандарный XML (data), понятный другим программам. Например:
    <div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">DXL</div></div><div class="sp-body"><div class="sp-content">
    Код (Text):
    <?xml version='1.0'?>
    <!DOCTYPE document SYSTEM 'xmlschemas/domino_8_5_3.dtd'>
    <document xmlns='http://www.lotus.com/dxl' version='8.5' maintenanceversion='3.3' replicaid='C325777A004B7013' form='Person'>
    <item name='ZIP'><text>601903</text></item>
    <item name='REGION'><text>Владимирская</text></item>
    <item name='REGION_CODE'><text>3300000000000</text></item>
    <item name='AREA_CODE'><text/></item>
    <item name='CITY_CODE'><text>3300000400000</text></item>
    <item name='LOCALITY'><text/></item>
    <item name='LOCALITY_CODE'><text/></item>
    <item name='STREET_CODE'><text>33000004000000200</text></item>
    </document>
    <div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">XML (что-то типа такого)</div></div><div class="sp-body"><div class="sp-content">
    Код (Text):
    <?xml version="1.0" encoding="UTF-8"?>
    <xfdf xmlns="http://ns.adobe.com/xfdf/" xml:space="preserve">
    <fields>
    <field name="1"><value>Project 1</value></field>
    <field name='ZIP'><value>601903</value></field>
    <field name='REGION'><value>Владимирская</value></field>
    <field name='REGION_CODE'><value>3300000000000</value></field>
    <field name='AREA_CODE'><value/></field>
    <field name='CITY_CODE'><value>3300000400000</value></field>
    <field name='LOCALITY'><value/></field>
    <field> name='LOCALITY_CODE'><value/></field>
    <field name='STREET_CODE'><value>33000004000000200</value></field>
    </fields>
    </xfdf>
    Про XSLTransformer в курсе. Может чего готовое есть? Надо ещё и заголовок переписывать, и с кодировками косяки какие-то.
     
  2. ToxaRat

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

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.047
    Симпатии:
    18
    а подсунуть свою схему не пробывали?
     
  3. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.052
    Симпатии:
    146
  4. garrick

    garrick Lotus team
    Lotus team

    Регистрация:
    26 окт 2009
    Сообщения:
    773
    Симпатии:
    52
    Нет. А как?
     
  5. lmike

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

    Регистрация:
    27 авг 2008
    Сообщения:
    6.081
    Симпатии:
    300
    ХСЛТ и есть самый готовый - просто преобразуете в "нужный" нэймспэйс (определяете свой)
    смотрите примеры для ФОП (здесь)
     
  6. garrick

    garrick Lotus team
    Lotus team

    Регистрация:
    26 окт 2009
    Сообщения:
    773
    Симпатии:
    52
    Блин! Не первый раз пытаюсь сделать что-то полезное с помощью DXLExporter/DXLImporter. Оно вообще на что-нибудь годится кроме выгрузки/загрузки из самого себя в себя. Проще принтами правильный XML самому сделать, чем потом порядок навести в этой каше. Кто-нибудь вообще этим пользуется? Научите меня.
    P.S. К вопросу это не относится. Вопрос решен путём прямого формирования XML нужной структуры, без DXL посредника.
     
  7. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.052
    Симпатии:
    146
    garrick
    Для построение структуры XML, лично я использовал либо Dom parser, либо Sax parser, так можно свою структуру генерить.
    Через Print/Write тоже можно, но на любителя.
    DXLExporter использовал для сравнения документов, ну и дизайна.
    Через DXLImporter можно подгружать дизайн в базу.
     
  8. garrick

    garrick Lotus team
    Lotus team

    Регистрация:
    26 окт 2009
    Сообщения:
    773
    Симпатии:
    52
    Нужно было просто выгрузить данные для последующей загрузки в другую (не Lotus) систему, которая умеет принимать данные в XML формате, причём соответствие полей настраивается. Но читать DXL она отказалась наотрез.
    <div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">В итоге написал такой простой код:</div></div><div class="sp-body"><div class="sp-content">
    Код (LotusScript):
        Dim session As New NotesSession
    Dim db As NotesDatabase
    Dim unprocessed As NotesDocumentCollection     
    Dim f As Integer

    Set db = session.currentdatabase
    Set unprocessed = db.unprocesseddocuments
    Dim doc As NotesDocument
    Set doc = unprocessed.getfirstdocument 

    f = FreeFile
    Open "c:\dxl\data.xml" For Output As f charset = "UTF-8"
    Print #f, {<?xml version="1.0" encoding="UTF-8"?>}
    Print #f, {<DATA>}
    Print #f, Tab(4) + {<} + doc.Form(0) + {>}
    ForAll i In doc.Items
    If Left(i.Name, 1) <> "$" Then
    Print #f, Tab(8) + {<} + i.Name + {>} + i.Text + {</} + i.Name + {>}
    End if 
    End ForAll
    Print #f, Tab(4) + {</} + doc.Form(0) + {>}
    Print #f, {</DATA>}
    Close f
    В итоге DXL опять в пролёте.
    Вот именно. Я так понимаю ни на что другое оно и не годится.
     
  9. ToxaRat

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

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.047
    Симпатии:
    18
    для правки элементов дизайна и РТполей незаменим
    а в других случайх лучше самому побайтово сделать
     
  10. VladSh

    VladSh начинающий
    Lotus team

    Регистрация:
    11 дек 2009
    Сообщения:
    1.251
    Симпатии:
    2
    То Вы опять в пролёте.
    Где оно годится.
     
Загрузка...
Похожие Темы - Dxl Xml
  1. hosm
    Ответов:
    11
    Просмотров:
    5.358
  2. Lia
    Ответов:
    15
    Просмотров:
    1.081
  3. ty3uk
    Ответов:
    16
    Просмотров:
    1.946
  4. susinmn
    Ответов:
    2
    Просмотров:
    1.128
  5. susinmn
    Ответов:
    2
    Просмотров:
    1.160

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