|
本帖最后由 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 |
|