CreateXMLDOMFromString (QTP, TestComplete, VBScript)
Parent page: Service Functions – MSXMLDOM (QTP, TestComplete, VBScript)
Description
Create XML DOM object by loading source XML from string. If the string is empty or source XML is invalid returns Nothing.
Implementation
Public Function CreateXMLDOMFromString(ByVal sXMLSource)
  Dim boolRC, intRC
  Dim objXMLDoc, objXMLRoot
 
  If Trim(sXMLSource) = "" Then
    Set CreateXMLDOMFromString = Nothing
    Exit Function
  End If
 
  Set objXMLDoc = CreateObject("Microsoft.XMLDOM")
  objXMLDoc.async = False
 
  On Error Resume Next
  objXMLDoc.loadXML(sXMLSource)
  intRC = Err.Number
  On Error GoTo 0
 
  If boolRC Then
    Set objXMLDoc = Nothing
    Set CreateXMLDOMFromString = Nothing
    Exit Function
  End If    
  Set objXMLRoot = objXMLDoc.documentElement
  boolRC = isNull(objXMLRoot) or (objXMLRoot is Nothing) 
  If boolRC Then
    Set objXMLDoc = Nothing
    Set CreateXMLDOMFromString = Nothing
    Exit Function
  End If    
 
  Set CreateXMLDOMFromString = objXMLDoc
End Function
Test Code
  Set objXMLDoc = CreateXMLDOMFromString("")
  If Not (objXMLDoc is Nothing) Then
    Log.Error "CreateXMLDOMFromString failed"
  End If
  sText = "<root>text<root>"
  Set objXMLDoc = CreateXMLDOMFromString(sText)
  If Not (objXMLDoc is Nothing) Then
    Log.Error "CreateXMLDOMFromString failed"
  End If
  sText = "<root>text</root>"
  Set objXMLDoc = CreateXMLDOMFromString(sText)
  If objXMLDoc is Nothing Then
    Log.Error "CreateXMLDOMFromString failed"
  End If
  sText = "<root>text <case>test case</case></root>"
  Set objXMLDoc = CreateXMLDOMFromString(sText)
  If objXMLDoc is Nothing Then
    Log.Error "CreateXMLDOMFromString failed"
  End If
  Set objXMLNode = ChildElementByName(objXMLDoc.DocumentElement, "case") 
  If objXMLNode is Nothing Then
    Log.Error "CreateXMLDOMFromString failed"
  End If
  If objXMLNode.BaseName <> "case" Then
    Log.Error "CreateXMLDOMFromString failed"
  End If
  If objXMLNode.Text <> "test case" Then
    Log.Error "CreateXMLDOMFromString failed"
  End If
 

