QTP的那些事有关xml的操作函数

filepath="C:/UserDedinedEnvironment.xml"

Set dics = GetVars(filepath)

addVar filepath,"tttt","aaaa"
Set dics = GetVars(filepath)
updateVar filepath,"tttt","55555555"
Set dics = GetVars(filepath)
delVar filepath,"tttt"
Set dics = GetVars(filepath)
xx=1

Function GetVars(filepath)    '已完成
    Set objxml= CreateObject("MSXML.DOMDocument")
    objxml.load filepath
    Set Environ = objxml.lastChild    '获得<Environment>节点
    Set dic = CreateObject("Scripting.Dictionary")
    allVar = Environ.childNodes.length    '获得<Environment>节点的子节点数量,即变量个数。
    For i=0 To allVar-1
        Set vars=Environ.childNodes.item(i)    '获得<Variable>节点
        var_name=vars.childNodes.item(0).nodeTypedValue
        var_value=vars.childNodes.item(1).nodeTypedValue
        dic.Add var_name,var_value
    Next
    Set GetVars = dic    '返回dictionary的环境变量列表
    Set dic = Nothing
End Function

Function addVar(filepath,varname,varvalue)    '已完成
    Set objxml= CreateObject("MSXML.DOMDocument")
    objxml.load filepath
    Set Environ = objxml.lastChild    '获得<Environment>节点

    Set dic = CreateObject("Scripting.Dictionary")
    allVar = Environ.childNodes.length    '获得<Environment>节点的子节点数量,即变量个数。
    For i=0 To allVar-1
        Set vars=Environ.childNodes.item(i)    '获得<Variable>节点
        var_name=vars.childNodes.item(0).nodeTypedValue
        var_value=vars.childNodes.item(1).nodeTypedValue
        dic.Add var_name,var_value
    Next
    If dic.Exists(varname) Then
        updateVar filepath,varname,varvalue
        Exit Function
    End If
    Set vars =Environ.childNodes.item(0)
    Set newVar= vars.cloneNode(1)    '复制<Variable>节点
    '修改子节点的值
    newVar.childNodes.item(0).nodeTypedValue = varname
    newVar.childNodes.item(1).nodeTypedValue = varvalue
    '添加节点
    Set newEnv= Environ.appendChild(newVar)
    '保存xml
    objxml.save filepath
End Function

Function updateVar(filepath,varname,varvalue)  '已完成
    Set objxml= CreateObject("MSXML.DOMDocument")
    objxml.load filepath
    Set Environ = objxml.lastChild    '获得<Environment>节点
    allVar = Environ.childNodes.length    '获得<Environment>节点的子节点数量,即变量个数。
'    Set dic = CreateObject("Scripting.Dictionary")
'    For i=0 To allVar-1
'        Set vars=Environ.childNodes.item(i)    '获得<Variable>节点
'        var_name=vars.childNodes.item(0).nodeTypedValue
'        var_value=vars.childNodes.item(1).nodeTypedValue
'        dic.Add var_name,var_value
'    Next
'    If Not dic.Exists(varname) Then
'        addVar filepath,varname,varvalue
'        Exit Function
'    End If

    For i=0 To allVar-1
        Set vars=Environ.childNodes.item(i)    '获得<Variable>节点
        var_name=vars.childNodes.item(0).nodeTypedValue
        If var_name=varname Then
            vars.childNodes.item(1).nodeTypedValue = varvalue    '更新变量值
            Exit For
        End If
    Next

    '保存xml
    objxml.save filepath
End Function

Function delVar(filepath,varname)    '已完成
    Set objxml= CreateObject("MSXML.DOMDocument")
    objxml.load filepath
    Set Environ = objxml.lastChild    '获得<Environment>节点
    allVar = Environ.childNodes.length    '获得<Environment>节点的子节点数量,即变量个数。
    If allVar=1 Then
        Exit Function
    End If
    For i=0 To allVar-1
        Set vars=Environ.childNodes.item(i)    '获得<Variable>节点
        var_name=vars.childNodes.item(0).nodeTypedValue
        If var_name=varname Then
            Environ.removeChild(vars)     '删除节点
            Exit For
        End If
    Next

    '保存xml
    objxml.save filepath
End Function


作者:高级测试开发网
博客地址:https://seniortesting.club
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

原文地址:https://www.cnblogs.com/seniortestingdev/p/2337164.html