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

  • 相关阅读:
    windows安装php的redis扩展及测试(适合php个各个版本)
    golang+linux+pipline
    泰勒展开式
    微积分
    矩阵
    learning rate warmup实现
    python asyncio as_completed
    python asyncio run_until_complete
    python asyncio 使用ThreadPoolExecutor和asyncio完成阻塞IO请求
    python asyncio call_soon, call_at, call_later
  • 原文地址:https://www.cnblogs.com/seniortestingdev/p/2337164.html
Copyright © 2011-2022 走看看