1

Тема: Последовательность событий NotesSAXParser

У NotesSAXParser в LotusScript есть стандартный набор событий, которые он вызывает при последовательном разборе XML.
Ты сам задаёшь имена функций-обработчиков, а парсер их вызывает.


StartDocument
Вызывается один раз в начале разбора.
Обычно тут инициализируют глобальные переменные, буферы.


StartElement(ByVal name As String, ByVal attrs As Variant)
Вызывается каждый раз при открытии нового XML-элемента (<tag ...>).
name – имя тега.
attrs – массив атрибутов вида ("attr1", "value1", "attr2", "value2", …).


Characters(ByVal chars As String)
Вызывается для текстового содержимого между тегами.
Может вызываться несколько раз подряд для одного элемента (парсер дробит данные).


EndElement(ByVal name As String)
Вызывается при закрытии элемента (</tag>).


EndDocument
Вызывается один раз в конце разбора.
Обычно здесь можно обработать накопленные данные.

Поделиться

2

Re: Последовательность событий NotesSAXParser

Пример

    Dim saxParser As NotesSAXParser
    Set saxParser=session.CreateSAXParser(streamIn)
    On Event SAX_StartDocument From saxParser Call SAXStartDocument
    On Event SAX_Characters From saxParser Call SAXCharacters ' содержимое элемента
    On Event SAX_StartElement  From saxParser Call SAXStartElement 'старт элемента
    On Event SAX_EndElement From saxParser Call SAXEndElement 'конец элемента
    On Event SAX_Error From saxParser Call SAXError
    On Event SAX_FatalError From saxParser Call SAXFatalError
    saxParser.Process    

Поделиться