第一层:使用XMLUtil对象, 创建一个XMLData类型的对象

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各层对象的方法相关推荐

  1. php xml对象解析_php解析xml 的四种简单方法(附实例)

    XML处理是开发过程中经常遇到的,PHP对其也有很丰富的支持,本文只是对其中某几种解析技术做简要说明,包括:Xml parser, SimpleXML, XMLReader, DOMDocument. ...

  2. js解析java对象数组_js接收并转化Java中的数组对象的方法

    在做项目时,要向ocx控件下发命令,就要在js中得到java中的对象,然后拼成一种格式,下发下去...当对象是一个时比较简单,但如果对象是一个数组时,就略显麻烦了. 开始我以为有简单的方式,可以直接进 ...

  3. OpenCV【零】—————cv::Mat——Mat对象创建方法

    OpenCV (一)--Mat对象创建方法 目录 OpenCV (一)--Mat对象创建方法 1. cv::Mat优点及原理(本质类) 2. Mat类拷贝及对象的创建方法 3. Mat 对象元素的高效 ...

  4. Java对象查询方法:Jxpath(转译)

    Java对象查询方法:Jxpath(转译) 在JAVA对象中,如何进行有效的查询呢,这一直是个很值得探讨的问题.大家知道,在XML中,要找元素如何找呢?没错,通过XPATH 是个不错的办法,同样道理, ...

  5. xml批量修改php,通过php修改xml文档内容的方法

    本文实例讲述了通过php修改xml文档内容的方法,.具体实现方法如下: 代码如下:<?php //1.创建一个DOMDocument对象.该对象就表示 xml文件 $xmldoc = new D ...

  6. PHP怎么读写XML?(四种方法)

    PHP怎么读写XML?(四种方法) 一.总结 1.这四种方法中,字符串的方式是最原始的方法.SimpleXML和DOM扩展是属于基于树的解析器,把整个文档存储为树的数据结构中,需要把整个文档都加载到内 ...

  7. php dom xml解析,Php Xml解析之DOMDocument使用方法浅解

    Php Xml解析之DOMDocument使用方法浅解 用到的XML文件还以"Php Xml处理之simplexml使用方法浅谈"一文中的XML为例,文件名为:me.xml.代码如 ...

  8. java用redis缓存的步骤_详解在Java程序中运用Redis缓存对象的方法|chu

    这段时间一直有人问如何在Redis中缓存Java中的List 集合数据,其实很简单,常用的方式有两种: 1. 利用序列化,把对象序列化成二进制格式,Redis 提供了 相关API方法存储二进制,取数据 ...

  9. python如何对一个属性或方法进行封装_python 类、对象、方法、属性

    在python中,一个对象的特征也称为属性(attribute).它所具有的行为也称为方法(method) 结论:对象=属性+方法 在python中,把具有相同属性和方法的对象归为一个类(class) ...

最新文章

  1. psychopy: pyglet.media.sources.riff.WAVEFormatException: AVbin is required to decode compressed medi
  2. gnujaxp.jar与struts2中的xwork核心包冲突
  3. 最新综述 | 强化学习中从仿真器到现实环境的迁移
  4. 安装codeblocks17.12
  5. python语言为什么叫python_Python为什么叫Python,Java又如何而来?
  6. 降采样_嫦娥五号探测器圆满完成我国首次月球采样返回任务
  7. split-lapply-cbind模式--R语言
  8. 永磁同步电机矢量控制学习--MTPA控制策略
  9. http响应报文,如果响应的内容比较大,客户端怎么样判断接收完了呢?
  10. C++——队列应用——显示二项式系数
  11. 云计算入门必备的60条术语
  12. 串口中断处理 m=SBUF; SBUF=m;自收发
  13. Code Project
  14. GTID 模式 - 通过跳过事务解决主从故障
  15. 破绕前——火箭开拓者第三战致胜的关键?
  16. 治愈选车困难症只需11.98万起!传祺影酷正式上市
  17. 关闭只为更好,耐克NRC退出中国市场,新一代“本地版”即将推出
  18. 在互联网中,资源免费共享还能走多久!
  19. 港科资讯 | 香港科技大学与Microsoft香港签订AI商学院2.0合作备忘录
  20. 英频杰Indy固件手册中文版(一)

热门文章

  1. NYOJ-123-士兵杀敌(四)
  2. untiy强制刷新UI
  3. 福禄克的通道测试、链路测试和跳线测试分别是什么
  4. Implicit super constructor xx() is undefined for default constructor. (在vscode上创建Spring boot项目)
  5. `Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig`
  6. 用计算机算出你喜欢吃你喜欢的人,心理测试:第一眼看到了什么,测试你喜欢的人是不是在暗恋你?...
  7. 【面试相关】数据分析面试前必看知识点QA①
  8. 科学家最新研究揭晓动物的彩色视觉能力
  9. 计算金球铁球体积c语言,网球金球制规则
  10. 平板电脑:给力的移动互联网终端