Вывод полей документа в браузере по запросу URL

deeeman

Well-known member
04.12.2007
383
0
#1
Всем привет!

Задача: вывести в xml формате поля документа в браузер по запросу URL
например такой url:
Для просмотра контента необходимо: Войти или зарегистрироваться


Пишем обычный агент который ловит url парсит его, вытягивает UNID, находим док и выводим все поля в виде xml в браузер (НЕ В ФАЙЛ!)

Агент такой:
Код:
Set session = New NotesSession
    Dim cdoc As NotesDocument
    Dim unid As String, params As String
    Dim db As NotesDatabase
    Dim doc As NotesDocument
   
    Set db= session.CurrentDatabase
    Set cdoc = session.DocumentContext
    params = cdoc.Query_String_Decoded(0)
   
    unid = GetParam(params, "unid")
   
    Set doc = getDocByUNID(db,unid)
    If Not doc Is Nothing Then
        Print {<?xml version="1.0" encoding="UTF-8"?>}
        Print {<entities>}
        Print {<entity unid="} & doc.UniversalID & {">}
        Forall i In doc.Items
            Print {<} & Cstr(i.name) & {>} & doc.GetItemValue(i.name)(0) & {</} & Cstr(i.name) & {>}
        End Forall
        Print "</entity>"
        Print "</entities>"       
    End If
Но ерунда в том что в браузере тэги не отображаются,
исходный код страницы содержит лишнее,
т.е. агент сам добавляет стандартную обертку для html страницы:

Код:
<html>
<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">      
</head>
<body text="#000000">
..........мой xml............
</body>
</html>
Что можно придумать чтобы выводил в формате xml
как по ссылке:
Для просмотра контента необходимо: Войти или зарегистрироваться
 

deeeman

Well-known member
04.12.2007
383
0
#3
То что надо! Спасибо!
так же, если у вас есть значения полей на русском, то не забыть про кодировку, а то xml ломается:
Код:
Print {Content-type: text/html; charset="windows-1251"}
Print {<?xml version="1.0" encoding="windows-1251"?>}
 

savl

Lotus team
28.10.2011
2 131
102
#4
у меня UTF-16 прекрасно срабатывает вместо win-1251.
с win1251 есть проблемы на иностранных ос
 

ToxaRat

Чёрный маг
Lotus team
06.11.2007
3 231
17
#5
задача почти такая же но посложнее
1) агент генерирует имя файла
2)по подобной ссылке должен скачиваться файл (XML)
 

garrick

Lotus team
26.10.2009
894
61
#6
задача почти такая же но посложнее
1) агент генерирует имя файла
2)по подобной ссылке должен скачиваться файл (XML)
А проблема-то в чём? п.1 или п.2 не получается?
Агент генерит нужный файл,сохраняет его на диске, а в консоль (Print) выводит ссылку на него см.
Для просмотра контента необходимо: Войти или зарегистрироваться
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 569
263
#7
Агент генерит нужный файл,сохраняет его на диске,
если файл небольшой можно и стрим отдать
Для просмотра контента необходимо: Войти или зарегистрироваться

в обычных агентах шитхеппенс (как у ИБМ часто бывает) ;)
Для просмотра контента необходимо: Войти или зарегистрироваться

т.е. гранаты не той системы
 

ToxaRat

Чёрный маг
Lotus team
06.11.2007
3 231
17
#9

garrick

Lotus team
26.10.2009
894
61
#10
нету самого главного - возможности выдать запрос на сохранение с указанным мною именем файла
Не приведу пример конкретного синтаксиса, надо искать какие-то примеры или в
Для просмотра контента необходимо: Войти или зарегистрироваться
, но в заголовке HTML можно указать тип содержимого. Если указан тип XML, то он будет открыт в броузере, а если указать "attachment", то броузер предложит сохранить файл на диске пользователя.

Попробуй как-то так (по памяти, не уверен что синтаксис точный):
HTML:
<html>
<head>
    <meta http-equiv="content-type" content="application/force-download">
    <meta http-equiv="content-disposition" content="attachment; filename='1.mp3'">
</head>
</html>