XML各层对象的方法
l 方法1:XMLUtil.CreateXML ( [RootName] )
创建的XMLData对象是空的,要结合XMLData.Load (XMLString) 或XMLData.LoadFile (FilePath)来初始化
l 方法2:XMLUtil.CreateXMLFromFile( XMLFilePath)
创建XMLData对象的同时,加载一个已存在的XML文件来初始化
第二层:对XMLData类型的对象的操作:加载文件,保存文件
常用方法和属性
lXMLData.Clone 方法
返回值:XMLData 对象
<Papa QTP="Great">
hello!imrootvalue
<Bambino>Valuable</Bambino>
<Bambino>Valuable</Bambino>
</Papa>
Set doc = XMLUtil.CreateXML()
doc.LoadFile "c:\cora.xml"
Set doc1 = xmlutil.CreateXML()
doc1.Load doc.ToString
Set doc2 = doc.Clone()
res = doc1.Compare(doc2,resultDoc)
if res = 1 then
msgbox "文档匹配 :-)"
else
msgbox "文档不匹配 :-("
end if
Set root =doc .GetRootElement
While Not root Is nothing
Msg Root. Value()
Else
Root.set Value("Abuela")
Msg Root. Value()
Root..savefile "c:\cora.xml"
lXMLData.Load (XMLString) 方法
见上,使用指定的 XML 字符串初始化 XML 对象。通常是个路径。
lXMLData.LoadFile (FilePath) 方法
见上,通常与doc.tostring连用
lXMLData.GetRootElement 方法
返回XMLElement 对象,由此进入第3层,对XMLElement的操作
lXMLData.SaveFile FilePath
lXMLData.ToString
可用于初始化另一个新建的XMLData对象,结合XMLData.Load (XMLString)方法
lXMLData.ChildElementsByPath 方法
返回驻留在指定路径中的所有子元素。
Set doc = XMLUtil.CreateXML()
doc.Load"<Bookstore><Book><ISBN>1234</ISBN></Book><Book><ISBN>4321</ISBN></Book><Book><ISBN>6584</ISBN></Book></Bookstore>"
Set children = doc.ChildElementsByPath("/Bookstore/Book/ISBN")
Set child = doc.GetRootElement().ChildElements().Item(1)
Set relatives = child.ChildElementsByPath("../Book/ISBN")
if children.Count() = relatives.Count() then
msgbox "XML 结构不存在问题,子节点的数量是"&children.Count()
end if
注意:判断某个对象是否存在,可以使用:Not object Is nothing
第三层:对XMLElement 对象, XMLElementsColl 对象, XMLAttribute 对象, XMLAttributesColl 对象,的操作
(参考QTP帮助文档-Quick Test Object Model Reference-Supplement Objects-XML …Object)
XMLElement 对象
l 常用方法:
l AddChildElement 方法
Set doc = XMLUtil.CreateXML()
doc.CreateDocument "Papa"
Set root = doc.GetRootElement()
root.AddChildElementByName "Bambino","Valuable"
Set children = root.ChildElements()
Set child = children.Item(1)
root.AddChildElement(child)
doc.SaveFile "C:\cora.xml"
if children.Count() <> 2 then
msgbox "添加子元素失败"
end if
root.RemoveChildElement child
if children.Count() <> 1 then
msgbox "删除子元素失败"
end if
l AddChildElementByName 方法
同上
l AddAttribute 方法
Set doc = XMLUtil.CreateXML()
doc.LoadFile "c:\cora.xml"
Set root = doc.GetRootElement()
Set attrs = root.Attributes()
msg = "最开始我有 " & attrs.Count() & " 个属性。 "
root.AddAttribute "QTP","Great"
Set attr = attrs.ItemByName("QTP")
if attr is nothing then
msgbox "添加属性失败!!!"
end if
msg = msg + "现在我有 " & attrs.Count() & " 个属性。"
root.RemoveAttribute "QTP"
msg = msg + "我重新有了 " & attrs.Count() & " 个属性。"
msgbox msg
l Attributes 方法
同上,返回属性集合中元素的所有属性。即返回一个属性的集合
l RootElement方法
返回元素文档的根元素
Set doc = XMLUtil.CreateXML()
doc.CreateDocument "Mama"
Set root = doc.GetRootElement()
root.SetValue("Abuela")
root.AddChildElementByName "Chica",""
Set child = root.ChildElements().Item(1)
child.AddChildElementByName "Chicita",""
Set grandChild = child.ChildElements().Item(1)
if root is grandChild.RootElement() then
msgbox "我找到了我的祖母级元素;她的值是 " + root.Value()
end if
doc.SaveFile "c:\cora.xml"
l CreateDocument 方法
同上
l SetValue 方法
如上
l Value 属性
返回元素的值(字符数据)。
Set doc = XMLUtil.CreateXML()
doc.LoadFile "c:\cora.xml"
Set root = doc.GetRootElement
msg = "My name is "
nameStr = root.ElementName()
valueStr = root.Value()
msgbox msg+nameStr + " and my value is " + valueStr
l ElementName 方法
同上,返回元素对象的标记名。
l NextSibling 方法
返回 XML 文档中的下一个兄弟元素。
Set doc = XMLUtil.CreateXML()
doc.LoadFile "c:\cora.xml"
Set root = doc.GetRootElement
Set children = root.ChildElements()
if not children.Count() = 0 then
Set firstChild = children.Item(1)
mag = "第一个子元素的名称是 " + firstChild.ElementName() + "。父元素的名称是 " + firstChild.Parent().ElementName() + "。 "
Set brother = firstChild.NextSibling()
If brother Is nothing Then
brotherStr = "我是兄弟中唯一的一员 ? 或者我没有兄弟"
Else
brotherStr = "他的第一个兄弟的名称是 " + brother.ElementName() + "。"
End If
End If
msgbox brotherStr
l Parent 方法
同上
l ChildElements 方法
同上,返回某个元素下的所有子元素集合,即XMLElementsColl Object
l ChildElementsByPath 方法
例子见:XMLDaTa.ChildElementsByPath
XMLElementsColl 对象
表示 XML 元素集合的对象。可以使用下列方法之一访问该对象:
l XMLData.ChildElementsByPath
见XMLData对象的属性和方法
l XMLElement.ChildElements
见XMLElement对象的属性和方法
l XMLElement.ChildElementsByPath
见XMLData对象的属性和方法的例子
l XMLElementsColl.AllItemsByName
返回具有指定名称的元素的集合。
<Papa QTP="Great">
hello!imrootvalue
<Bambino>Valuable</Bambino>
<Bambino>Valuable</Bambino>
</Papa>
Set doc = XMLUtil.CreateXML()
doc.LoadFile "c:\cora.xml"
Set root = doc.GetRootElement()
Set children = root.ChildElements()
if children.Count() <> 0 then
Set firstChild = children.Item(1)
firstChildName = firstChild.ElementName()
Set sameNameChildren = children.AllItemsByName(firstChildName)
msg = "我的第一个子元素的名称为 " + firstChildName + ",我有其中的 " + FormatNumber(sameNameChildren.Count(),0) + " 个。"
End If
msgbox msg
Count 属性
返回集合中的元素数。
Set children = root.ChildElements()
if children.Count() <> 0 then
Set firstChild = children.Item(1)
Item 属性
返回集合中的指定元素。
语法 :
XMLElementsColl.Item ( ID [, Index] )
ID:可以是元素名称,也可以是索引,即,第几次出现
Index ,如果id为元素名的话,则可以指定第几次出现的位置。
Itembyname属性
返回具有指定标记名的元素。如果有多个项具有相同的标记名,则可以指定要检索该标记名的哪一次出现。如果未指定,则检索第一次出现的标记名。
例子:
该示例显示了带可选索引参数和不带可选索引参数的 ItemByName 的用法。
Set doc = XMLUtil.CreateXML()
doc.LoadFile "c:\cora.xml"
Set root = doc.GetRootElement()
Set children = root.ChildElements()
Set child = children.ItemByName("Bambino ")
numOfChildren = 0
While Not child Is nothing
numOfChildren = numOfChildren+1
Set child = children.ItemByName("Cartman",numOfChildren+1)
Wend
msgbox "名为 Cartman 的子元素的数目为 " & numOfChildren
XMLAttribute对象
表示 XML 元素属性的对象。可以使用下列方法之一访问该对象:
l XMLElement.AddAttribute
l XMLAttributesColl.Item
l XMLAttributesColl.ItemByName
Name 属性
返回属性名。
示例
以下示例使用 Value 方法在根元素中查找属性的值,以便与其属性名一起显示。
Set doc = XMLUtil.CreateXML()
doc.LoadFile "c:\cora.xml"
Set root = doc.GetRootElement()
Set attribs = root.Attributes()
numOfAttr = attribs.Count()
i = 1
While i <= numOfAttr
Set attr = attribs.Item(i)
nameStr = attr.Name()
valStr = attr.Value()
attrStr = attrStr + nameStr+"="+chr(34)+valStr+chr(34) + " "
i = i+1
Wend
msgbox "属性:" + attrStr
Value 属性
返回属性的值,同上
XMLAttributesColl 对象
表示元素属性集合的对象。可以使用以下方法访问该对象:
可以通过xmlelement. Attributes 方法方法来访问:
l xmlelement. Attributes
具体如xmlelement章节
Count 属性
例子同XMLAttribute的name属性
Item 属性
同上
ItemByName 属性
返回具有指定名称的属性。
Set doc = XMLUtil.CreateXML()
doc.LoadFile "c:\cora.xml"
Set root = doc.GetRootElement()
Set attrs = root.Attributes()
msg = "最开始我有 " & attrs.Count() & " 个属性。 "
root.AddAttribute "QTP","Great"
Set attr = attrs.ItemByName("QTP")
doc.savefile"c:\cora.xml"
if attr is nothing then
msgbox "添加属性失败!!!"
end if
msg = msg + "现在我有 " & attrs.Count() & " 个属性。 "
root.RemoveAttribute "QTP"
msg = msg + "我重新有了 " & attrs.Count() & " 个属性。"
msgbox msg
心得
(1)对象要用SET 来赋值,但数字不需要,加了SET反而会出错
如:
set xmlValues= child. ChildElementsByPath("../variable").item(1).value
会报“object required”错误, 因为用了SET, xmlValues是个对象,而后面赋的值却是个数字
转载于:https://www.cnblogs.com/sirrah/archive/2011/10/21/2349113.html
XML各层对象的方法相关推荐
- php xml对象解析_php解析xml 的四种简单方法(附实例)
XML处理是开发过程中经常遇到的,PHP对其也有很丰富的支持,本文只是对其中某几种解析技术做简要说明,包括:Xml parser, SimpleXML, XMLReader, DOMDocument. ...
- js解析java对象数组_js接收并转化Java中的数组对象的方法
在做项目时,要向ocx控件下发命令,就要在js中得到java中的对象,然后拼成一种格式,下发下去...当对象是一个时比较简单,但如果对象是一个数组时,就略显麻烦了. 开始我以为有简单的方式,可以直接进 ...
- OpenCV【零】—————cv::Mat——Mat对象创建方法
OpenCV (一)--Mat对象创建方法 目录 OpenCV (一)--Mat对象创建方法 1. cv::Mat优点及原理(本质类) 2. Mat类拷贝及对象的创建方法 3. Mat 对象元素的高效 ...
- Java对象查询方法:Jxpath(转译)
Java对象查询方法:Jxpath(转译) 在JAVA对象中,如何进行有效的查询呢,这一直是个很值得探讨的问题.大家知道,在XML中,要找元素如何找呢?没错,通过XPATH 是个不错的办法,同样道理, ...
- xml批量修改php,通过php修改xml文档内容的方法
本文实例讲述了通过php修改xml文档内容的方法,.具体实现方法如下: 代码如下:<?php //1.创建一个DOMDocument对象.该对象就表示 xml文件 $xmldoc = new D ...
- PHP怎么读写XML?(四种方法)
PHP怎么读写XML?(四种方法) 一.总结 1.这四种方法中,字符串的方式是最原始的方法.SimpleXML和DOM扩展是属于基于树的解析器,把整个文档存储为树的数据结构中,需要把整个文档都加载到内 ...
- php dom xml解析,Php Xml解析之DOMDocument使用方法浅解
Php Xml解析之DOMDocument使用方法浅解 用到的XML文件还以"Php Xml处理之simplexml使用方法浅谈"一文中的XML为例,文件名为:me.xml.代码如 ...
- java用redis缓存的步骤_详解在Java程序中运用Redis缓存对象的方法|chu
这段时间一直有人问如何在Redis中缓存Java中的List 集合数据,其实很简单,常用的方式有两种: 1. 利用序列化,把对象序列化成二进制格式,Redis 提供了 相关API方法存储二进制,取数据 ...
- python如何对一个属性或方法进行封装_python 类、对象、方法、属性
在python中,一个对象的特征也称为属性(attribute).它所具有的行为也称为方法(method) 结论:对象=属性+方法 在python中,把具有相同属性和方法的对象归为一个类(class) ...
最新文章
- psychopy: pyglet.media.sources.riff.WAVEFormatException: AVbin is required to decode compressed medi
- gnujaxp.jar与struts2中的xwork核心包冲突
- 最新综述 | 强化学习中从仿真器到现实环境的迁移
- 安装codeblocks17.12
- python语言为什么叫python_Python为什么叫Python,Java又如何而来?
- 降采样_嫦娥五号探测器圆满完成我国首次月球采样返回任务
- split-lapply-cbind模式--R语言
- 永磁同步电机矢量控制学习--MTPA控制策略
- http响应报文,如果响应的内容比较大,客户端怎么样判断接收完了呢?
- C++——队列应用——显示二项式系数
- 云计算入门必备的60条术语
- 串口中断处理 m=SBUF; SBUF=m;自收发
- Code Project
- GTID 模式 - 通过跳过事务解决主从故障
- 破绕前——火箭开拓者第三战致胜的关键?
- 治愈选车困难症只需11.98万起!传祺影酷正式上市
- 关闭只为更好,耐克NRC退出中国市场,新一代“本地版”即将推出
- 在互联网中,资源免费共享还能走多久!
- 港科资讯 | 香港科技大学与Microsoft香港签订AI商学院2.0合作备忘录
- 英频杰Indy固件手册中文版(一)
热门文章
- NYOJ-123-士兵杀敌(四)
- untiy强制刷新UI
- 福禄克的通道测试、链路测试和跳线测试分别是什么
- Implicit super constructor xx() is undefined for default constructor. (在vscode上创建Spring boot项目)
- `Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig`
- 用计算机算出你喜欢吃你喜欢的人,心理测试:第一眼看到了什么,测试你喜欢的人是不是在暗恋你?...
- 【面试相关】数据分析面试前必看知识点QA①
- 科学家最新研究揭晓动物的彩色视觉能力
- 计算金球铁球体积c语言,网球金球制规则
- 平板电脑:给力的移动互联网终端