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
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。