|    
			
				01/08/2006, 09:21
			
			
			  | 
  |   |  |  |  Fecha de Ingreso: julio-2006 
						Mensajes: 98
					 Antigüedad: 19 años, 3 meses Puntos: 0 |  | 
  |  Leer XML  
  Hola. Primero aclararo que soy nuevo en XML. Estoy leyendo un archivo .xml que tiene una estructura mas o menos asi:
 1
 2
 3
 3
 4
 4
 3
 
 1
 2
 3
 3
 4
 4
 3
 
 Cada nro es un "nodo" xml. Yo quisiera que mi programa VB lea:
 
 a) Cuantos nivel 1 hay ?
 b) Dentro de cada nivel 1, cuantos niveles 2 hay ?
 c) Dentro de cada nivel 2, cuantos niveles 3 hay ?
 
 ================= Mi programa VB =======================
 Dim oXMLDom As New DOMDocument40
 
 
 Private Sub Form_Load()
 
 Dim ws_ligne, ws_colonne
 Dim fs, f, f1, fc, s
 Dim extension_file As String
 
 On Error GoTo err1
 
 Set fs = CreateObject("Scripting.FileSystemObject")
 Set f = fs.GetFolder(App.Path)
 Set fc = f.Files
 
 
 For Each f1 In fc
 extension_file = Right(f1.Name, 4)
 
 If extension_file = ".xml" Then
 ' Load an xml document into a DOM instance.
 oXMLDom.async = False
 oXMLDom.validateOnParse = False
 oXMLDom.resolveExternals = False
 oXMLDom.preserveWhiteSpace = True
 If oXMLDom.Load(App.Path + "\" + f1.Name) = False Then
 MsgBox "Failed to load xml data from file."
 Exit Sub
 End If
 
 Call xml_file_issued_niveau2("Issued")
 End If
 Next
 
 
 On Error GoTo 0
 
 
 err1:
 MsgBox err.Number, err.Description
 End
 
 End Sub
 ----------------------------------------------
 Sub xml_file_issued_niveau2(ws_node_name1)
 
 Dim oNodes2 As IXMLDOMNodeList
 Set oNodes2 = oXMLDom.selectNodes("//" & ws_node_name1 & "[1]/*")
 
 For i2 = 0 To oNodes2.length - 1
 Set oNode2 = oNodes2.nextNode
 If Not (oNode2 Is Nothing) Then
 sName = oNode2.nodeName
 sData = oNode2.xml
 Call xml_file_issued_niveau3(oNode2.nodeName)
 End If
 Next
 
 End Sub
 -------------------------------------------
 Sub xml_file_issued_niveau3(ws_node_name2)
 
 ' Query a node-set (niveau 3).
 
 
 
 Dim oNodes3 As IXMLDOMNodeList
 Set oNodes3 = oXMLDom.selectNodes("//" & ws_node_name2 & "[1]/*")
 
 For i3 = 0 To oNodes3.length - 1
 Set oNode3 = oNodes3.nextNode
 If Not (oNode3 Is Nothing) Then
 sName = oNode3.nodeName
 Select Case sName
 Case "SerialNumber"
 garder_serial_number = oNode3.Text
 Case "BusinessUnit"
 Call xml_file_issued_niveau4(oNode3.nodeName)
 End Select
 End If
 Next
 
 End Sub
 ------------------------------------------------
 Sub xml_file_issued_niveau4(ws_node_name3)
 
 ' Query a node-set (niveau 4).
 
 Dim oNodes4 As IXMLDOMNodeList
 'Set oNodes3 = oXMLDom.selectNodes("//BusinessUnit[1]/*")
 Set oNodes4 = oXMLDom.selectNodes("//" & ws_node_name3 & "[1]/*")
 
 For i4 = 0 To oNodes4.length - 1
 Set oNode4 = oNodes4.nextNode
 If Not (oNode4 Is Nothing) Then
 sName = oNode4.nodeName
 sData = oNode4.xml
 End If
 Next
 
 
 End Sub
 
 ====================
 
 Alguien podria ayudarme ?
 Gracias.
     |