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 correct 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