51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3940|回复: 5
打印 上一主题 下一主题

[求助] vbs读取xml的值问题?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2009-9-3 13:50:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
XML格式:
   <Enviroment>
    <Variable>
      <name>strDBName</name>
      <value>app</value>
    </Variable>
    ----
   </Enviroment>

我现在想取到strDBName得value值“app”,脚本该怎么写?想写成一个共通函数(GetXmlVale(path,nodel));比如GetXmlVale("D:\Enviroment.xml", strDBName)); 返回“app”。

[ 本帖最后由 lyj841120 于 2009-9-3 14:53 编辑 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2009-9-3 15:10:09 | 只看该作者
这个我写过现成的函数去解决,我来找一下,忘了放在哪里了....
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2009-9-3 15:14:05 | 只看该作者
'读取xml结点信息
Function readConfig(byval path, byval nodeName)
        Set xmlDoc = Nothing
        Set xmlDoc = CreateObject("Msxml2.DOMDocument")
        'loadXML
        xmlDoc.load(path)
        Set root = xmlDoc.documentElement
        Set objChildNodes = root.getElementsByTagName(nodeName)'Getting nodes collection
        Dim num, res
        Set res = CreateObject("scripting.dictionary")'新建字典
        num = objChildNodes.length'获取Nodes集合的个数
        For i = 0 To (num - 1)'循环为字典赋值
                res.Add objChildNodes(i).firstChild.text, objChildNodes(i).lastChild.text
        Next
        set xmlDoc = Nothing
        Set readConfig = res
End Function

上面这个函数应该能为你提供思路,如果你的Node下面最多只有2个child的话,那么上面这个函数就够用了。
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2009-9-3 15:23:52 | 只看该作者

回复 1# 的帖子

Function GetXmlVale(ByVal Name, ByVal sPath)
                        Set doc = XMLUtil.CreateXML()
                        Dim child,children
                        doc.LoadFile sPath
                        Set root = doc.GetRootElement()
                        Set children = root.ChildElements()
                        Set child = children.ItemByName(Name)

                        For i = 1 To  child.ChildElements().Count  Step 1
                                Set grandChild = child.ChildElements().Item(i)
                                Msgbox(grandChild.Value())
                        Next
                        GetXmlVale=0
End Function



这在QTP代码上找来的,如果是QTP脚本这个function 改一下应该可以满足你的要求,这用法 GetXmlVale("D:\Enviroment.xml", "Variable")  ,可以找出strDBName,app

[ 本帖最后由 xzguang 于 2009-9-3 15:35 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2009-9-3 15:38:17 | 只看该作者
回复 3# 的帖子
回复 4# 的帖子
谢谢你们,我参照你们的改了下OK了。
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2009-9-4 00:15:08 | 只看该作者
原帖由 lyj841120 于 2009-9-3 13:50 发表
XML格式:
   <Enviroment>
    <Variable>
      <name>strDBName</name>
      <value>app</value>
    </Variable>
    ----
   </Enviroment>

我现在想取到strDBName得value值“app”,脚本该怎么写?想写成一个共通函数(GetXmlVale(path,nodel));比如GetXmlVale("D:\Enviroment.xml", strDBName)); 返回“app”。
...


你这XML的格式就是环境配置文件的格式,直接导入用就行

Dim strDBN
Environment.LoadFromFile("C:\YourXmlFile.xml")
strDBN = Environment("strDBName")
Msgbox CStr(strDBN)
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-9-22 05:42 , Processed in 0.088524 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表