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

seoman2

Lotus team
17.02.2010
465
1
#1
Находясь где то в одном из дочерних узлов дом дерева хочу создать свой тег со значением.
Оказывается, что теги надо создавать сначала в корне дерева, а потом их переносить в нужный узел.

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>
 

seoman2

Lotus team
17.02.2010
465
1
#2
Вот пытаюсь просто в тег внести
mystr="<teg>123</teg>"
так в XMLке
<teg></teg>
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 586
272
#3
@seoman2 вот понимаете ли..., вы берете инструмент и пытаетесь производить действия в обход штатных механизмов...
 

seoman2

Lotus team
17.02.2010
465
1
#4
Как штатно создать в каком-то дочернем теге дерева dom еще пару тегов со значениями?
Если можно пример. Весь хелп пересмотрел.
 

seoman2

Lotus team
17.02.2010
465
1
#7
Вроде как и я делают, но у меня не так всё на выходе с форматом тегов...
Мож надо с CreateElementNodeNS создавать ноду?
Правда не нашел пример namespaceURI , qualifiedName
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 586
272
#8
@seoman2 мне уже просто нечего сказать...
про хмл уже далеко не первый пост с вами, есть куча средств и решений, но у вас с ним перманентные проблемы
постоянно втыкаетесь в ДОМ, при том что пользоваться не умеете
что за задача такая, кот. так долго и безуспешно надо мучить?
 

seoman2

Lotus team
17.02.2010
465
1
#9
что за задача такая, кот. так долго и безуспешно надо мучить?
Генерация и парсинг XML-ки на основе лотусового документа. XML-ка будет универсальная, для обмена инфой между разными докоборотами.


Еще вопрос. Уже по парсингу XML
К примеру есть код в рекурсивном парсинге xml файла в XMLTree:
Код:
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
 

garrick

Lotus team
26.10.2009
901
61
#10
Хорош фигнёй страдать, переходите уже на Java с такими задачами. Там столько всего интересного:
JAXB

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

seoman2

Lotus team
17.02.2010
465
1
#12
В общем мне надо проверить существование FirstChild у docNode, т.к. при пустом теге MyTag в дебагере нету FirstChild вообще.
garrick - Спасибо! Всё работает как надо.
 
Последнее редактирование:

seoman2

Lotus team
17.02.2010
465
1
#14
Еще один вопросик по DOM.
Парсю много XML документов.
Если domParser.Process дает ошибку разбора XML, то как именно её обработать?
Возвращаемого значения нет, тольк. неизвестная ошибка.

Код:
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
 

VladSh

начинающий
Lotus team
11.12.2009
1 262
6
#16
> что за задача такая, кот. так долго и безуспешно надо мучить?
Генерация и парсинг XML-ки на основе лотусового документа. XML-ка будет универсальная, для обмена инфой между разными докоборотами.
В Domino уже есть универсальная XML-ка - dxl, просто делаете export и получаете её. Дальше парсите.
Страдание фигнёй ^ 2...
 

seoman2

Lotus team
17.02.2010
465
1
#17
да нет проблем с парсиногом, хочу неправильные XML как-то отрабатывать.
Например, обрабатывая ошибку 4602 ...