1。<?xml version="1.0" encoding="gb2312"?><XNHData><head><sendTime>2010-01-19 11:26:10</sendTime></head><businessData><data type="person"><01>01001000101         </01><02>韩    </t02><03>1</03><04>32<04></data><data type="person"><01>01001000102         </01><02>杨    </t02><03>2</03><04>33<04></data><data type="person"><01>01001000103         </01><02>莹      </t02><03>2</03><04>34<04></data><data type="person"><01>01001000104         </01><02>兰    </t02><03>2</03><04>35<04></data></dataSet></businessData></XNHData>
这个数据已被我读到text1.text,如何取任意节点的数据!
2。一个xml文件中,有好多相同的节点,如何遍历所有的数据加载到combo1中
效果像这样:
combo1.additem"01001000101-韩-1-32"
combo1.additem"01001000102-杨-2-33"
combo1.additem"01001000103-莹-2-34"
combo1.additem"01001000104-兰-2-35"
谢谢!

解决方案 »

  1.   

    1, getElementsByTagName
    2, for each
      

  2.   

    WebBrowser1.Document.All(i).Name
    代码一搜一大堆
      

  3.   

    取出来了就只是个字符串了,用正则.
    或者用instr(),mid()这些函数来分析,定义两个临时变量记录位置作循环.
    加载到combo1比较简单,循环的时候将分析得到的值一个个放进去.
      

  4.   

    01 是纯数字,不能作为节点名称,不符合 xml 命名规则。
    所以无法用 XMLDOM 进行解析。
      

  5.   

    按你1提供的数据,程序如下:Private Sub Form_Load()
       Text1.Text = "1。 <?xml version=""1.0"" encoding=""gb2312""?> <XNHData> <head> <sendTime>2010-01-19 11:26:10 </sendTime>" & _
                    "</head> <businessData> <data type=""person""> <01>01001000101        </01> <02>韩    </t02> <03>1 </03> " & _
                    "<04>32 <04> </data> <data type=""person""> <01>01001000102        </01> <02>杨    </t02> <03>2 </03>" & _
                    "<04>33 <04> </data> <data type=""person""> <01>01001000103        </01> <02>莹      </t02> <03>2 </03>" & _
                    "<04>34 <04> </data> <data type=""person""> <01>01001000104        </01> <02>兰    </t02> <03>2 </03>" & _
                    "<04>35 <04> </data> </dataSet> </businessData> </XNHData>"
       Dim a As String, i1 As Long, i2 As Long, i3 As Long, istr(3) As String
       a = Text1.Text
       While a <> ""
          For i1 = 1 To 4
              Select Case i1
                  Case 1, 3
                      i2 = InStr(a, "<0" & i1 & ">")
                      i3 = InStr(a, "</0" & i1 & ">")
                      istr(i1 - 1) = Trim(Mid(a, i2 + 4, i3 - i2 - 4))
                 Case 2
                      i2 = InStr(a, "<0" & i1 & ">")
                      i3 = InStr(a, "</t0" & i1 & ">")
                      istr(i1 - 1) = Trim(Mid(a, i2 + 4, i3 - i2 - 4))
                Case 4
                      i2 = InStr(a, "<0" & i1 & ">")
                      i3 = InStr(i2 + 4, a, "<0" & i1 & ">")
                      istr(i1 - 1) = Trim(Mid(a, i2 + 4, i3 - i2 - 4))
            End Select
            
            a = Mid(a, i3)
          Next
          Combo1.AddItem Join(istr, "-")
          If InStr(a, "<01>") = 0 Then a = ""
      Wend
      
    End Sub