请教两个小问题
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, getElementsByTagName
2, for each --------------------编程问答-------------------- 可以有详细代码吗,我是第一次搞这个东东! --------------------编程问答-------------------- WebBrowser1.Document.All(i).Name
代码一搜一大堆 --------------------编程问答--------------------
取出来了就只是个字符串了,用正则.
或者用instr(),mid()这些函数来分析,定义两个临时变量记录位置作循环.
加载到combo1比较简单,循环的时候将分析得到的值一个个放进去.
--------------------编程问答-------------------- 01 是纯数字,不能作为节点名称,不符合 xml 命名规则。
所以无法用 XMLDOM 进行解析。 --------------------编程问答-------------------- 按你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
补充:VB , 基础类