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

  • 相关阅读:
    Vue技巧小结(持续更新)
    Vue+Webpack常见问题(持续更新)
    webpack模块定义和使用的模式
    vue-cli笔记
    新浪微博怎么知道你没登录
    jquery页面水印插件,支持多行水印、行错开
    浏览器并发连接数(未完成)
    HTTP1.0 、1.1
    你总说时间很少
    看小说的这些年
  • 原文地址:https://www.cnblogs.com/seniortestingdev/p/2337164.html
Copyright © 2011-2022 走看看