VB6.0如何读取XML中各级节点及其子节点的值?如题 具体涉及到我的xml文件如下  
<?xml version="1.0" ?> 
- <root>
- <group>
- <groupinfo>
  <fType>H31</fType> 
  <EMPCODE>H33H37H3H031H3H031H</EMPCODE> 
  </groupinfo>
- <member>
  <fType>H31</fType> 
  <EMPCODE>H33H37H3H031H3H031H3H</EMPCODE> 
  <EMPNAME>H7AH7AH7AH7AH7A</EMPNAME> 
  <ALIAS /> 
  <SEX>H31</SEX> 
  <FOLK>H48H41</FOLK> 
  <BIRTH>H31H39H37H37H3H032H3H034</BIRTH> 
  </member>
- <member>
  <fType>H31</fType> 
  <EMPCODE>H33H37H3H031H3H031H3H031</EMPCODE> 
  <EMPNAME>H7AH7AH7AH7AH7A</EMPNAME> 
  <ALIAS /> 
  <SEX>H31</SEX> 
  <FOLK>H48H41</FOLK> 
  <BIRTH>H31H39H37H37H3H032H3H034</BIRTH> 
  </member>
- <member>
  <fType>H31</fType> 
  <EMPCODE>H33H37H3H031H3H031H3H031H</EMPCODE> 
  <EMPNAME>H7AH7AH7AH7AH7A</EMPNAME> 
  <ALIAS /> 
  <SEX>H31</SEX> 
  <FOLK>H48H41</FOLK> 
  <BIRTH>H31H39H37H37H3H032H3H034</BIRTH> 
  </member>
  </group>
  </root>在网上查了 可以读取到一级节点    Dim xmlDoc As DOMDocument       '* XML 文件对象
    Dim xmlRootNode As IXMLDOMNode     '* 根节点
    Dim FirstNode As IXMLDOMNode       '* 第一级子节点
    Dim SencondNode As IXMLDOMNode     '* 第二级子节点
    Dim ThridNode As IXMLDOMNode       '* 第三级子节点    Set xmlDoc = New DOMDocument
    xmlDoc.Load (App.Path & "\text.xml")
    
    '读取根节点
    Set xmlRootNode = xmlDoc.documentElement
    
   '读取根节点下的一级子节点
    If Not xmlRootNode Is Nothing Then   '* 如果根节点不为空,则读取其中的子节点
        For Each FirstNode In xmlRootNode.childNodes
            Debug.Print FirstNode.nodeName        '* 打印节点名
        Next
    End If
在往下读取二级节点<groupinfo> 和<member>中的各子节点的值就不知道怎么读取了,
请高手指教,谢谢!

解决方案 »

  1.   

    http://blog.csdn.net/guyehanxinlei/archive/2007/07/23/1702660.aspx
    楼主可以简单参考一下。
      

  2.   

    可以根据节点的序号来读取:
    Debug.Print xmlRootNode.childNodes.Item(0).childNodes(0).nodeName
    for i=0 to xmlRootNode.childNodes.Item(0).childNodes(1).childNodes.length-1
         Debug.Print xmlRootNode.childNodes.Item(0).childNodes(1).childNodes(i).nodeValue
    next
      

  3.   

    不行啊 我这样做的 
        Dim getNodeVale As String   '获取<member>下<fType></fType>节点的值
        Set SencondNode = xmlDoc.documentElement.selectSingleNode("fType")
        If SencondNode Is Nothing Then
            getNodeValue = ""
        Else
            getNodeValue = valueNode.nodeTypedValue & ""
        End If
        Debug.Print getNodeValue 
    结果取不到啊
      

  4.   

    Debug.Print xmlRootElement.childNodes.Item(0).childNodes(1).selectSingleNode("fType").nodeValue
      

  5.   

        For Each SencondNode In xmlRootNode.childNodes.Item(0).childNodes
            Debug.Print SencondNode.nodeName
        Next这个循环能取出所有一级节点  但是有个地方还没明白 :item(0)为什么就能表示一级节点呢
      

  6.   

    你读取节点的层的结构不对。
    1    <root>  2    <group>   3    <groupinfo>, <member>  4    <fType>
    你首先要读取<root> ,然后读取<root>下的<group> ,然后读取 <group>下的 <groupinfo>或者<member>,然后才能是 <groupinfo>或者<member>下的 <fType>