• 利用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>
    ------------------------------------------------------------------------
  • 相关阅读:
    【Apollo】Apollo 分布式部署
    【Spring】SpringBatch快速入门
    Nacos、Apollo、Spring Cloud Config微服务配置中心对比
    IDEA或Android Studio用书签功能标识代码 Stars
    Jetpack架构组件学习(0)——总结篇 Stars
    Android Studio导出APP的数据库db文件 Stars
    Jetpack架构组件学习(1)——LifeCycle的使用 Stars
    JavaFx Tooltip悬浮提示使用及自定义 Stars
    JavaFx WebView使用研究 Stars
    Jetpack架构组件学习(2)——ViewModel和Livedata使用 Stars
  • 原文地址:https://www.cnblogs.com/ryhan/p/2036537.html
Copyright © 2020-2023  润新知