
01/08/2006, 09:21
|
| | Fecha de Ingreso: julio-2006
Mensajes: 98
Antigüedad: 18 años, 9 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. |