Lotus Software logo
IBM Lotus Domino Designer 8.5
  Versions 8.5 and 8.5.1






Examples: NotesDOMNodeList class

This example shows how a NotesDOMNodeList is used to find matching nodes. See Examples: GetAttribute method for the agent containing this example.

Sub getPersonDocs (node As NotesDOMElementNode)

'node is the root element of the xml file

Dim documentList As NotesDOMNodeList
Dim nDocument As Integer 'number of <document> elements
Dim i As Integer 'counter for documentList
Dim child As NotesDOMNode
Dim eNode As NotesDOMElementNode
Dim n As Integer 'number of attributes

If node.IsNull Then Exit Sub

Set documentList = node.GetElementsByTagName ("document")
nDocument = documentList.NumberOfEntries
If nDocument = 0 Then Exit Sub 'no document elements in file

REM Check the child nodes of the root element
Set child = node.FirstChild
For i = 1 To nDocument
While Not child.NodeName = "document"
Set child = child.NextSibling
Wend

REM We found an element node named "document"
If child.Attributes.NumberOfEntries > 0 Then

REM The node has attritubes
Set eNode = child 'switch to element node
For n = 1 To eNode.Attributes.NumberOfEntries
If eNode.GetAttribute("form") = "Person" Then

REM The node has the right attribute name and value
Call getData (eNode)
End If
Next
End If

REM Look for another Person document
Set child = child.NextSibling
Next

End Sub
Sub getData (node As Notesdomelementnode)

'node is an element named "document"

Dim itemList As NotesDOMNodeList
Dim nItem As Integer 'number of <item> elements
Dim i As Integer 'counter for itemList
Dim child As NotesDOMNode
Dim eNode As Notesdomelementnode
Dim n As Integer 'number of attributes

If node.IsNull Then Exit Sub

Set itemList = node.GetElementsByTagName ("item")
nItem = itemList.NumberOfEntries
If nItem = 0 Then Exit Sub 'no item elements in node

REM Check the child nodes of this element
Set child = node.FirstChild
For i = 1 To nItem
While Not child.NodeName = "item"
Set child = child.NextSibling
Wend

REM We found an element node named "item"
If child.Attributes.NumberOfEntries > 0 Then

REM The node has attritubes
Set eNode = child 'switch to element node
For n = 1 To eNode.Attributes.NumberOfEntries

REM Look for an attribute named "name"
REM Only one of the following matches will be found for this node

If eNode.GetAttribute("name") = "FirstName" Then
REM We found a matching attribute value
domParser.Output (NL)
Call writeData (eNode)
n = eNode.Attributes.NumberOfEntries 'done with this node
End If

If eNode.GetAttribute("name") = "LastName" Then
REM We found a matching attribute value
domParser.Output (" ")
Call writeData (eNode)
domParser.Output (NL)
n = eNode.Attributes.NumberOfEntries 'done with this node
End If

If eNode.GetAttribute("name") = "OfficePhoneNumber" Then
REM We found a matching attribute value
domParser.Output (" ")
Call writeData (eNode)
domParser.Output (NL)
n = eNode.Attributes.NumberOfEntries 'done with this node
End If

Next 'continue searching for a matching attribute
End If

REM Look for another matching item
Set child = child.Nextsibling
Next

End Sub
Related topics
NotesDOMNodeList class
Examples: GetAttribute method




Library | Support | Terms of use |

Last updated: Monday, October 5, 2009