p_SetXMLElementTextByIndex (QTP, TestComplete, VBScript)
Parent page: Service Functions – MSXMLDOM (QTP, TestComplete, VBScript)
Description
Iterate to index. Change value for existing text node.
Otherwise create new child nodes till index.
Implementation
Private Function p_SetXMLElementTextByIndex(ByRef objXMLElement, ByVal intIndex, ByVal sValue)
Dim objXMLDoc, objTextNode
Dim objColl, Iter, IndexIter
Set objColl = objXMLElement.ChildNodes
IndexIter = -1
For Iter=0 To objColl.length-1
If objColl.Item(Iter).NodeName = "#text" Then
IndexIter = IndexIter + 1
If IndexIter = intIndex Then
objColl.Item(Iter).NodeValue = sValue
p_SetXMLElementTextByIndex = True
Exit Function
End If
End If
Next
Set objXMLDoc = objXMLElement.OwnerDocument
IndexIter = IndexIter + 1
For Iter=IndexIter to intIndex
Set objTextNode = objXMLDoc.CreateTextNode(sValue)
objXMLElement.AppendChild(objTextNode)
Next
p_SetXMLElementTextByIndex = True
End Function

