51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 3550|回复: 3
打印 上一主题 下一主题

[原创] 请教读取、输出XML信息及添加XML对象?---有附件供大家练兵

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-5-17 20:01:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
E盘有附件中的XML文件,请下载。
想获取里面("/page/portfolio/entry/symbol下的---600002.ss这个---数据,不知该如何写代码?

自己写的代码总提示 : The"e:\search.xml"XMLFile object was not found 的错误。怎样把这个XML文件添加到对象库?
用检查点可以实现:Insert--Checkpoint--XML Checkpoint,这样能把这个XML文件添加到对象库,其它方法呢?
是用代码能添加对象吗?


有上千个这样的XML文件,不用代码写简直....

Set XMLObj = XMLUtil.CreateXML() -----
XMLObj.LoadFile("E:\search.xml") ---------这两句具体什么意思我也不清楚,就是从帮助上搞的,添上去也没用
Set xml_data = XMLFile("E:\search.xml").GetData
Set children = xml_data.ChildElementsByPath("/page/portfolio/entry/symbol")
eleValue = children.Item(1).Value------------如果对象添加上的话,这里能取到600002.ss 这个值,但除了手工操作,如何把这个XML文件添加到
对象库中?

以上是问题1。
问题2:有1000个这样的XML文件的话又如何做? 将 Set xml_data = XMLFile("E:\search.xml").GetData 里面的文件地址E:\参数化?
问题3:如果XML地址是网络上的URL地址怎么办? 能否直接写 Set xml_data = XMLFile("http:\\www.finance.com\xml\600002.ss").GetData ?

问题4:如何把取到的1000个XML文件上的值保存起来最方便? 放到DataTable里面吗?按运行顺序逐行(1-1000)输出到Datatable中的名称为finance的列中?


sdlkfj1
很不好意思,问了这么多,而且有些是本论坛有也的知识,但自己的水平较低,需要结果真实项目更详细的讲解。。。。期盼高手们的方案!
谢谢。

[ 本帖最后由 yuedao 于 2007-5-17 20:07 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    2#
    发表于 2007-5-18 09:10:08 | 只看该作者
    请对 XML比较熟悉的朋友帮忙解决一下吧
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3#
    发表于 2007-5-18 09:23:53 | 只看该作者
    我在论坛发了一段xml的例子,你要学会搜索论坛啊!

    Option Explicit
    Dim xmlStr

    xmlLoad ("C:\aa.xml")

    Sub xmlLoad (byval strPath)
            Dim xmlDoc,xmlRoot
           
            Set xmlDoc = CreateObject("Microsoft.XMLDOM")
            xmlDoc.async = False
            xmlDoc.load strPath
            If xmlDoc.parseError.errorCode <> 0 Then       
                    MsgBox "XML loaded Failed.The reason is:" & xmlDoc.parseError.reason
                    Exit Sub
            End If        
            Set xmlRoot = xmlDoc.documentElement
            xmlStr = xmlRoot.nodeName & ": " & xmlRoot.nodeValue
            If xmlRoot.childNodes.length <> 0 Then
                    xmlRecursive xmlRoot
            End If       
            MsgBox xmlStr
    End Sub

    Sub xmlRecursive(byval xmlNode)
            Dim xmlChildNode,xmlChildNodeLen,iLen
           
            xmlChildNodeLen = xmlNode.childNodes.length       
            If xmlChildNodeLen = 0 Then Exit Sub       
            For iLen = 0 To xmlChildNodeLen - 1
                    Set xmlChildNode = xmlNode.childNodes.item(iLen)
                    xmlStr = xmlStr & Chr(13) & Chr(10) & xmlChildNode.nodeName & ": " & xmlChildNode.nodeValue
                    If xmlChildNode.childNodes.length <> 0 Then
                            xmlRecursive xmlChildNode
                    End If               
            Next       
    End sub
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4#
     楼主| 发表于 2007-5-18 09:49:48 | 只看该作者
    sdlkfj1
    我之前确实搜索了,而且看到上面的这段儿代码,但我实在是看不懂其含义,而且现在没有足够的时间去细细研究,有闲点儿的朋友帮忙解释一下吗?多谢了~sdlkfj8
    后来还是按照自己的思路进行的,
    另外我把楼上这段儿代码复制后QTP运行,会弹出一该XML结构及内容的提示条,只能手动关闭,不明白是干嘛用的...
    另外
    .......................
    Set xml_data = XMLFile("E:\search.xml").GetData
    Set children = xml_data.ChildElementsByPath("/page/portfolio/entry/symbol")
    eleValue = children.Item(1).Value
    ......................
    这3行代码对吗?我觉得这样取值挺方便啊? 但必须先把E:\search.xml这个对象添加到对象库。
    或者能录制时添加XML对象吗?如果可以的话先跑1000次把1000个XML文件都添加到对象库中问题就解决了,直接用上面3行代码就OK。





    sdlkfj7 麻烦谁给解释一下楼上版主发的代码的含义,谢谢。
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-5-6 00:31 , Processed in 0.073052 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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