• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

dxl и поля с хинтами

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
Всем привет!

Столкнулся вот с какой проблемой.
Есть документ. На форме документа есть поле с хинтом.
Этот документ рендерится в RT-поле нового документа. Этот новый документ сохраняется и dxl-ится.
В результате в xml-файле получается фигня. Содержимое RT-поля получается кодированным. Похоже на Base64-кодировку, но никакими методами раскодировать эти данные и получить вменяемый текст не получается.
Кто-то решал подобную задачу?

Вариант с удалением хинта в дизайне или обход xml перед рендерингом в RT-поле не предлагать.
 
может стрим в специфичном формате?
 
Та хз.
В хелпе нашел такое
*RICHTEXTOPTION_DXL (0) (default) Richtext is output in its normal DXL format, as a <richtext> element.
*RICHTEXTOPTION_RAW (1) Richtext is output as a <rawitemdata> element containing the raw data for the richtext item, encoded in Base64. This option can be useful if the only purpose of the DXL will be to import it into another database, because it assures that the imported data will be precisely the same as the original.

у меня принудительно 0. Но по какой-то причине при наличии хинтов получаю rawitemdata.
Онлайновыми декодерами пробовал прочитать - получаю кое-где читабельный текст, а в основном - кучу псевдографики. Намека на xml нету :(
 
весь код как делается экспорт приведи
 
Код:
Set doctmp = dbCurrent.Createdocument()       
    Set item = doctmp.Createrichtextitem("Body")
    Call doc.Rendertortitem(item )
    doctmp.Form = "tmp"   
    item.IsSigned = False
    item.IsEncrypted = False
    Call doctmp.ComputeWithForm( False, False )
    Call doctmp.Save(True, False, True)   


    Set stream = session.CreateStream
    Call stream.Open(flXml, "UTF-16")
    Stream.Truncate
    
    '    получаем xml-данные
    Set domParser = session.CreateDOMParser()   
    Set exporter = session.CreateDXLExporter( doctmp, domParser )
    exporter. ConvertNotesbitmapsToGIF = True
    exporter.Mimeoption = 0
    exporter.Richtextoption = 0
    exporter.OutputDOCTYPE = False
    exporter.Process
        
    Call domParser.SetOutPut(stream)
    Call domParser.Serialize
    
    Call stream.Close()
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

Похожие темы