700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 利用vbs读取XML中的某个指定子叶节点 (转)

利用vbs读取XML中的某个指定子叶节点 (转)

时间:2021-07-18 07:24:07

相关推荐

利用vbs读取XML中的某个指定子叶节点 (转)

利用vbs读取XML中的某个指定子叶节点 (转) -------------------------------------------------------------------------------------------------------

Function GetXml (strXmlFilePath,nodestring)

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

Nodes = Split(nodestring, "\")

GetXml = xmlRecursion(xmlRoot,Nodes,1,true)

set xmlDoc = Nothing

End Function

Function xmlRecursion(byval xmlNode,NodeNames,NodeIndex,isContinue)

If xmlNode.hasChildNodes Then

If xmlNode.childNodes.item(0).nodeName = "#text" Then

xmlRecursion= xmlNode.childNodes.item(0).nodeValue

isContinue = false

End If

End If

If xmlNode.hasChildNodes Then

For Each childNodeItem In xmlNode.ChildNodes

If isContinue Then

If childNodeItem.hasChildNodes and childNodeItem.nodeName = NodeNames(NodeIndex) Then

xmlRecursion = xmlRecursion(childNodeItem,NodeNames,NodeIndex+1,isContinue)

End If

End If

Next

End If

End Function

---------------------------------------------------------------------------------------------------

调用的时候直接写 GetXml(XML文件路径,节点路径)

如:msgbox GetXml("c:\test2.xml","根节点\子节点")

如果xml文件的内容是下面的内容的话, msgbox GetXml("文件路径","ROOT\TestCase0\TestResult") 就会显示出 “3”,此函数不适取节点的属性。以后再完善吧,呵呵

------------------------------------------------------------------------

<?xml version="1.0" encoding="GB2312"?>

<ROOT>

<TestCase0>

<TestNumberOne>1</TestNumberOne>

<TestNumberTwo>2</TestNumberTwo>

<TestNumberThree>+</TestNumberThree>

<TestResult>3</TestResult>

</TestCase0>

<TestCase1>

<TestNumberOne>3</TestNumberOne>

<TestNumberTwo>2</TestNumberTwo>

<TestNumberThree>-</TestNumberThree>

<TestResult>1</TestResult>

</TestCase1>

<TestCase3>

<TestNumberOne>3</TestNumberOne>

<TestNumberTwo>7</TestNumberTwo>

<TestNumberThree>*</TestNumberThree>

<TestResult>21</TestResult>

</TestCase3>

<TestCase2>

<TestNumberOne>2</TestNumberOne>

<TestNumberTwo>5</TestNumberTwo>

<TestNumberThree>/</TestNumberThree>

<TestResult>0.4</TestResult>

</TestCase2>

</ROOT>

------------------------------------------------------------------------ posted on -05-04 15:10 ryhan 阅读(...) 评论(...) 编辑 收藏

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。