日立张 发表于 2010-9-6 16:27:35

qtp中是如何实现xml读取的

<environment>
<Variable>
<Name>xx<Name>
<Value>xxx<Value>
</Variable>
</environment>
想知道qtp中怎么实现通过name的值得到value的值的???

hanjj 发表于 2010-9-7 10:26:07

Dim strXML
GetXml "xml路径","你要查的结点"
MsgBox strXML

Function GetXml (ByVal strXmlFilePath,ByVal xmlNodeName)
      Dim xmlDoc,xmlRoot
      
      Set xmlDoc = CreateObject("Microsoft.XMLDOM") '创建XML DOM对象
      xmlDoc.async = False'控制加载模式为同步模式(xml树加载完毕后再执行后续代码)
      xmlDoc.load strXmlFilePath      '载入xml文件
      If xmlDoc.parseError.errorCode <> 0 Then
                MsgBox "XML文件格式不对,原因是:" & Chr(13) &xmlDoc.parseError.reason
                Exit Function               
      End If
      Set xmlRoot = xmlDoc.documentElement      
      xmlRecursion xmlRoot,xmlNodeName      '调用xml递归函数传入指定的根和节点名      
      GetXml = True 'xmlRecursion (xmlRoot)
      
End Function


Function xmlRecursion(byval xmlNode,byval strNodeName)
              
      If xmlNode.nodeName = strNodeName And xmlNode.hasChildNodes Then
                IfxmlNode.childNodes.item(0).nodeName = "#text" Then
                        strXML = strXML & xmlNode.nodeName & ":" & xmlNode.childNodes.item(0).nodeValue & Chr(13)                                             
                End If               
      End If                     
      If xmlNode.hasChildNodes Then
                For Each childNodeItem In xmlNode.ChildNodes
                        If childNodeItem.hasChildNodes Then
                              xmlRecursion childNodeItem,strNodeName                              
                        End If                     
                Next
      End If      
End Function

hanjj 发表于 2010-9-7 10:29:04

你的xml文件格式不对.仔细看一下.应该是<Name>XXX</Name>漏了/号,下面的Value也是

日立张 发表于 2010-9-8 15:07:55

是的 笔误

日立张 发表于 2010-9-8 15:09:32

想问下除了这个方法外还有别的方法么。

TIB 发表于 2010-9-8 15:12:32

可以用XMLDOM,也可以用XMLUtil对象
页: [1]
查看完整版本: qtp中是如何实现xml读取的