dabeixiong 发表于 2011-2-15 21:43:08

XMLUtil对象里的ChildElementsByPath很让我费解

本帖最后由 dabeixiong 于 2011-2-15 21:44 编辑

偶然写代码发现点问题,于是写了段测试程序,终于发现问题所在,上代码先(QTP10中运行的,应该9,9.5,11都一样把):

'创建XMLUtil对象实例doc
Set doc = XMLUtil.CreateXML

'加载段xml
doc.Load "<Bookstore><Book><ISBN>1234</ISBN></Book><Book><ISBN>4321</ISBN></Book><Book><ISBN>6584</ISBN></Book></Bookstore>"

'root为根节点对象,即Bookstore
Set root = doc.GetRootElement

'用ChildElements方法获取子元素
Set children = root.ChildElements

'用ChildElementsByPath方法获取子元素,即3个Book元素
Set Xpathchildren = root.ChildElementsByPath("/Bookstore/*")


'这里看还没啥问题,貌似用ChildElements或ChildElementsByPath可以实现同样效果
For i = 1 to 3
      msgbox "children: " & children.Item(i).ElementName
      msgbox "Xpathchildren: " & Xpathchildren.Item(i).ElementName
Next

'用Xpathchildren的item找兄弟,3个Book元素互为兄弟应该
Set brother = Xpathchildren.Item(1).NextSibling

'这就诡异了,怎么brother为nothing呢-.-!难道用ChildElementsByPath获得的子元素用NextSibling方法就有问题?
If brother is nothing Then
      msgbox "搞什么飞机啊!!!!"
End If

'用children的item找兄弟,就没啥问题
Set brother = children.Item(1).NextSibling

'children对象中的item获取到的元素兄弟就不是nothing,崩溃!
msgbox brother.ElementName

dabeixiong 发表于 2011-2-15 21:47:31

用ChildElementsByPath方法获取子元素时,用过"//Book","/Bookstore/Book"等,结果是一样的...有兴趣的可以试试,真是诡异啊...哪位玩QTP的遇到这灵异事件了?

dabeixiong 发表于 2011-2-15 22:59:00

各位看官路过给个留言行不~解决不解决无所谓的事...搞得我很寂寞啊-.-!
页: [1]
查看完整版本: XMLUtil对象里的ChildElementsByPath很让我费解