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

  • 相关阅读:
    【Elasticsearch 技术分享】—— ES 常用名词及结构
    【Elasticsearch 技术分享】—— Elasticsearch ?倒排索引?这都是什么?
    除了读写锁,JUC 下面还有个 StampedLock!还不过来了解一下么?
    小伙伴想写个 IDEA 插件么?这些 API 了解一下!
    部署Microsoft.ReportViewe
    关于TFS强制undo他人check out
    几段查看数据库表占用硬盘空间的tsql
    How to perform validation on sumbit only
    TFS 2012 Disable Multiple Check-out
    在Chrome Console中加载jQuery
  • 原文地址:https://www.cnblogs.com/seniortestingdev/p/2337164.html
Copyright © 2011-2022 走看看