Создание тегов в Dom дереве

Тема в разделе "Lotus - Программирование", создана пользователем seoman2, 26 июл 2016.

Метки:
  1. seoman2

    seoman2 Lotus team
    Lotus team

    Регистрация:
    17 фев 2010
    Сообщения:
    435
    Симпатии:
    0
    Находясь где то в одном из дочерних узлов дом дерева хочу создать свой тег со значением.
    Оказывается, что теги надо создавать сначала в корне дерева, а потом их переносить в нужный узел.

    docNode As NotesDOMNode
    docrootnode As NotesDOMDocumentNod
    Set docNode = domParser.Document
    Set docrootnode = docNode
    .....
    docNode уже в каком-то дочернем узле destinations ....
    Set newDocNode = docrootnode.CreateElementNode("LegalEntity")
    newDocNode.NodeValue ="012"
    Call docNode.AppendChild(newDocNode)

    При этом создается

    <destinations><LegalEntity/></destinations>
     
  2. seoman2

    seoman2 Lotus team
    Lotus team

    Регистрация:
    17 фев 2010
    Сообщения:
    435
    Симпатии:
    0
    Вот пытаюсь просто в тег внести
    mystr="<teg>123</teg>"
    так в XMLке
    &lt;teg>&lt;/teg>
     
  3. lmike

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

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    @seoman2 вот понимаете ли..., вы берете инструмент и пытаетесь производить действия в обход штатных механизмов...
     
  4. seoman2

    seoman2 Lotus team
    Lotus team

    Регистрация:
    17 фев 2010
    Сообщения:
    435
    Симпатии:
    0
    Как штатно создать в каком-то дочернем теге дерева dom еще пару тегов со значениями?
    Если можно пример. Весь хелп пересмотрел.
     
  5. lmike

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

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
  6. lmike

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

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
  7. seoman2

    seoman2 Lotus team
    Lotus team

    Регистрация:
    17 фев 2010
    Сообщения:
    435
    Симпатии:
    0
    Вроде как и я делают, но у меня не так всё на выходе с форматом тегов...
    Мож надо с CreateElementNodeNS создавать ноду?
    Правда не нашел пример namespaceURI , qualifiedName
     
  8. lmike

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

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    @seoman2 мне уже просто нечего сказать...
    про хмл уже далеко не первый пост с вами, есть куча средств и решений, но у вас с ним перманентные проблемы
    постоянно втыкаетесь в ДОМ, при том что пользоваться не умеете
    что за задача такая, кот. так долго и безуспешно надо мучить?
     
  9. seoman2

    seoman2 Lotus team
    Lotus team

    Регистрация:
    17 фев 2010
    Сообщения:
    435
    Симпатии:
    0
    Генерация и парсинг XML-ки на основе лотусового документа. XML-ка будет универсальная, для обмена инфой между разными докоборотами.


    Еще вопрос. Уже по парсингу XML
    К примеру есть код в рекурсивном парсинге xml файла в XMLTree:
    Код (Text):

    Sub XMLTree(docNode As NotesDOMNode, doc As NotesDocument)
    ....
        If Not docNode.IsNull Then  
    ....
    Case DOMNODETYPE_ELEMENT_NODE:    
    ....
    If    docNode.ParentNode.NodeName = "ParentTag"    And docNode.Nodename = "MyTag"    Then
       mytag$ = docNode.FirstChild.NodeValue
    End If
     
    И если <ParentTag><MyTag></MyTag></ParentTag> пустой, то ошибка...
    Не ясно, как правильно проверить на пустоту docNode.FirstChild.NodeValue
     
  10. garrick

    garrick Lotus team
    Lotus team

    Регистрация:
    26 окт 2009
    Сообщения:
    770
    Симпатии:
    50
    Хорош фигнёй страдать, переходите уже на Java с такими задачами. Там столько всего интересного:
    JAXB

    XStream
    XPath
    и много ещё всего другого...
     
  11. garrick

    garrick Lotus team
    Lotus team

    Регистрация:
    26 окт 2009
    Сообщения:
    770
    Симпатии:
    50
    Так не пробовали?
     
    seoman2 нравится это.
  12. seoman2

    seoman2 Lotus team
    Lotus team

    Регистрация:
    17 фев 2010
    Сообщения:
    435
    Симпатии:
    0
    В общем мне надо проверить существование FirstChild у docNode, т.к. при пустом теге MyTag в дебагере нету FirstChild вообще.
    garrick - Спасибо! Всё работает как надо.
     
    #12 seoman2, 20 сен 2016
    Последнее редактирование: 20 сен 2016
  13. oshmianski

    oshmianski Достойный программист
    Lotus team

    Регистрация:
    25 апр 2012
    Сообщения:
    512
    Симпатии:
    13
    Если уж страдать, тогда уж вот.
     
  14. seoman2

    seoman2 Lotus team
    Lotus team

    Регистрация:
    17 фев 2010
    Сообщения:
    435
    Симпатии:
    0
    Еще один вопросик по DOM.
    Парсю много XML документов.
    Если domParser.Process дает ошибку разбора XML, то как именно её обработать?
    Возвращаемого значения нет, тольк. неизвестная ошибка.

    Код (Text):
    On Error Goto ErrH
    Forall v In xxx
    ...
    Set domParser=session.CreateDOMParser(strm, outputStream)
    domParser.Process
    ...
    End Forall
    Exit Sub
    ErrH:
    Print " Ошибка: " & Error(Err) & " в строке " & Erl
    End Sub
     
  15. garrick

    garrick Lotus team
    Lotus team

    Регистрация:
    26 окт 2009
    Сообщения:
    770
    Симпатии:
    50
    "мыши кололись, плакали, но продолжали есть кактус" :)
     
  16. VladSh

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

    Регистрация:
    11 дек 2009
    Сообщения:
    1.251
    Симпатии:
    2
    В Domino уже есть универсальная XML-ка - dxl, просто делаете export и получаете её. Дальше парсите.
    Страдание фигнёй ^ 2...
     
  17. seoman2

    seoman2 Lotus team
    Lotus team

    Регистрация:
    17 фев 2010
    Сообщения:
    435
    Симпатии:
    0
    да нет проблем с парсиногом, хочу неправильные XML как-то отрабатывать.
    Например, обрабатывая ошибку 4602 ...
     
Загрузка...

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