次の例は、NotesDOMNodeList を使用して一致したノードを検索する方法を示します。この例を含むエージェントについては、「例: GetAttribute method」を参照してください。
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