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



本文转自hcy's workbench博客园博客,原文链接:http://www.cnblogs.com/alterhu/archive/2012/02/03/2337164.html ,如需转载请自行联系原作者。

目录
相关文章
|
6月前
|
XML 数据格式
关于 SAP UI5 XML 视图里控件事件处理函数名称中的 . (点号) 问题的讨论试读版
关于 SAP UI5 XML 视图里控件事件处理函数名称中的 . (点号) 问题的讨论试读版
36 0
|
XML SQL 关系型数据库
PostgreSQL 10.1 手册_部分 II. SQL 语言_第 9 章 函数和操作符_9.14. XML 函数
9.14. XML 函数 9.14.1. 产生 XML 内容 9.14.2. XML 谓词 9.14.3. 处理 XML 9.14.4. 将表映射到 XML 本节中描述的函数以及类函数的表达式都在类型xml的值上操作。
1156 0
|
XML Java 数据格式
沫沫金-XML节点解析(List内容)不依赖任何Jar包_JDK原生函数
大家好,XML解析不依赖任何Jar包的编写模式,关键词:Pattern、Matcher使用。 工具类如下 /**  * Xml工具类  * @author 章力  * @微信 zl4828  */ public class XmlUtil { /**      * 从消息message中提取出指定的tagName节点,包括他得子节点.
833 0
|
XML PHP 数据格式
strip_tags() 函数剥去 HTML、XML 以及 PHP 的标签
定义和用法 strip_tags() 函数剥去 HTML、XML 以及 PHP 的标签。 语法 strip_tags(string,allow) 参数 描述 string 必需。规定要检查的字符串。
804 0
|
XML 数据格式
InnoSetup XML操作函数
用于InnoSetup 5 以上。对XML文件的操作,简化InnoSetup XML访问过程。 1. [代码]InnoSetup 5 脚本     { ================================================================ ...
916 0
|
XML C# 数据格式
|
XML JavaScript 前端开发
几个javascript处理xml的函数
今天用到javascript處理ajax返回的xml,又到了網找了一下,終於證實了自己之前想到的,已經有人做的解釋xml的js插件,不過,現在只用到簡單的xml處理,我也感覺這幾個函數很有用,轉貼一下。
944 0