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 ,如需转载请自行联系原作者。
目录
相关文章
|
2月前
|
XML C# 数据格式
使用C#操作XML文件
使用C#操作XML文件
12 0
|
5月前
|
XML Java 开发工具
jdom操作xml实战
jdom操作xml实战
|
11天前
|
XML 存储 JavaScript
XML DOM 加载函数
`loadXMLString()`函数被封装在名为&quot;loadxmlstring.js&quot;的外部JavaScript文件中,用于加载XML文档。在示例HTML中,这个函数被调用来处理动态生成的XML字符串,该字符串描述了一本名为&quot;Everyday Italian&quot;的书籍信息。之后,可以在`code goes here.....`处进一步处理`xmlDoc`对象。
|
11天前
|
XML 存储 JavaScript
XML DOM 加载函数
`loadXMLDoc()` 是一个JavaScript函数,用于加载XML文档。它支持XMLHttpRequest和ActiveXObject,适应不同浏览器。函数定义存储在名为`loadxmldoc.js`的外部文件中,包含在HTML `&lt;head&gt;`标签内,然后在页面脚本中调用来获取XML数据,如`books.xml`。接下来的章节将介绍如何处理加载的数据。
|
2月前
|
XML 存储 JavaScript
深入学习 XML 解析器及 DOM 操作技术
所有主要的浏览器都内置了一个XML解析器,用于访问和操作XML XML 解析器 在访问XML文档之前,必须将其加载到XML DOM对象中 所有现代浏览器都有一个内置的XML解析器,可以将文本转换为XML DOM对象
72 0
|
4月前
|
XML Java 数据库连接
Mybatis之简介、使用操作(安装、XML、SqlSession、映射的SQL语句、命名空间、作用域和生命周期)
【1月更文挑战第2天】 MyBatis 是一款优秀的持久层框架 MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集的过程 MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 实体类 【Plain Old Java Objects,普通的 Java对象】映射成数据库中的记录。
112 2
Mybatis之简介、使用操作(安装、XML、SqlSession、映射的SQL语句、命名空间、作用域和生命周期)
|
9月前
|
XML Java 数据库连接
java202304java学习笔记第六十五天-ssm-声明式控制-基于xml的声明式配置-原始jdbc操作1
java202304java学习笔记第六十五天-ssm-声明式控制-基于xml的声明式配置-原始jdbc操作1
43 0
|
5月前
|
XML Java 数据库连接
* 完成单表操作:需要3个功能。 * 功能1:使用注解 * 功能2:通用Mapper * 功能3:使用xml
* 完成单表操作:需要3个功能。 * 功能1:使用注解 * 功能2:通用Mapper * 功能3:使用xml
95 0
|
7月前
|
XML 存储 JSON
【100天精通python】Day29:文件与IO操作_XML文件处理
【100天精通python】Day29:文件与IO操作_XML文件处理
52 0
|
7月前
|
XML 数据格式
关于 SAP UI5 XML 视图里控件事件处理函数名称中的 . (点号) 问题的讨论试读版
关于 SAP UI5 XML 视图里控件事件处理函数名称中的 . (点号) 问题的讨论试读版
38 0