Visual Basic - PROBLEMAS CON NODOS XML

Life is soft - evento anual de software empresarial
   
Vista:

PROBLEMAS CON NODOS XML

Publicado por Ninho (14 intervenciones) el 22/04/2015 16:51:57
Hola alguna instruccion para agregar un nodo como la imgen que adjunto. Es un programa en vb en el cual tengo toda la estructura del xml pero no he logrado de crear el xml como el ejemplo. Me pueden ayudar.?.Les dejo el código. Está hecho a partir de un MSHFlexgrid de donde tomo los datos y de ahí creo el XML.Gracias por contestar. Saludos.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
Private Sub CmdGenerarXML_Click()
 
    Set objDom = New DOMDocument
    Set objModule = New DOMDocument
 
    Set XMLInstruccion = objDom.createProcessingInstruction("xml", "version='1.0' encoding='UTF-8'")
    objDom.appendChild XMLInstruccion
 
         Set objRootElem = objDom.createElement("BCE:Balanza")
 
         objRootElem.setAttribute "xmlns:BCE", "www.sat.gob.mx/esquemas/ContabilidadE/1_1/BalanzaComprobacion"
         objRootElem.setAttribute "xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance"
         objRootElem.setAttribute "xsi:schemaLocation", "www.sat.gob.mx/esquemas/ContabilidadE/1_1/BalanzaComprobacion http://www.sat.gob.mx/esquemas/ContabilidadE/1_1/BalanzaComprobacion/BalanzaComprobacion_1_1.xsd"
         objDom.appendChild objRootElem
 
         Call XMLHeader
 
         Fila = 1
 
         With MSHFlexGrid1
              Do While .TextMatrix(Fila, 0) <> vbNullString
 
                'create new element and attribute by calling to CreateXMLBalanza function.
                objModule.loadXML (CreateXMLBalanza(.TextMatrix(Fila, 0), .TextMatrix(Fila, 1), .TextMatrix(Fila, 2), .TextMatrix(Fila, 3), .TextMatrix(Fila, 4)))
 
                Set objNode = objModule.firstChild
                objDom.documentElement.appendChild objNode
 
                Fila = Fila + 1
 
              Loop
 
              'Saves the xml document in c:\temp directory
                 NombreBalanza = "XXAX010101X01" + Combo2.Text + Combo1.Text + "B" + Combo3.Text + ".XML"
              objDom.Save (NombreBalanza)
              MsgBox " SE HA GENERADO EXISTODAMENTE EL ARCHIVO EN: " & NombreBalanza, vbInformation, "GENERAR BALANZA XML"
 
End Sub
 
Public Function XMLHeader()
 
         Set objDocAttribute = objDom.createAttribute("Version")
         objDocAttribute.nodeValue = "1.1"
         objRootElem.setAttributeNode objDocAttribute
 
         Set objDocAttribute = objDom.createAttribute("RFC")
         objDocAttribute.nodeValue = "XXAX010101X01"
         objRootElem.setAttributeNode objDocAttribute
 
         Set objDocAttribute = objDom.createAttribute("Mes")
         objDocAttribute.nodeValue = FrmBalanzaXML.Combo1.Text
         objRootElem.setAttributeNode objDocAttribute
 
         Set objDocAttribute = objDom.createAttribute("Anio")
         objDocAttribute.nodeValue = FrmBalanzaXML.Combo2.Text
         objRootElem.setAttributeNode objDocAttribute
 
         If OptionXML = 1 Then
            Set objDocAttribute = objDom.createAttribute("TipoEnvio")
            objDocAttribute.nodeValue = FrmBalanzaXML.Combo3.Text
            objRootElem.setAttributeNode objDocAttribute
 
            Set objDocAttribute = objDom.createAttribute("FechaModBal")
            objDocAttribute.nodeValue = "2015-04-30" 'FrmBalanzaXML.Combo3.Text
            objRootElem.setAttributeNode objDocAttribute
 
         End If
 
End Function
 
' ----------------------------------------------------------------------------------
Public Function CreateXMLBalanza(strNumCta As String, strSaldoIni As String, _
    strDebe As String, strHaber As String, strSaldoFin As String) As String
 
   Set objDomBal = New DOMDocument
 
   Set objRootElem = objDomBal.createElement("Ctas")
   objDomBal.appendChild objRootElem
 
   Set objMbrAttribute = objDomBal.createAttribute("NumCta")
   objMbrAttribute.nodeValue = strNumCta
   objRootElem.setAttributeNode objMbrAttribute
 
   Set objMbrAttribute = objDomBal.createAttribute("SaldoIni")
   objMbrAttribute.nodeValue = strSaldoIni
   objRootElem.setAttributeNode objMbrAttribute
 
   Set objMbrAttribute = objDomBal.createAttribute("Debe")
   objMbrAttribute.nodeValue = strDebe
   objRootElem.setAttributeNode objMbrAttribute
 
   Set objMbrAttribute = objDomBal.createAttribute("Haber")
   objMbrAttribute.nodeValue = strHaber
   objRootElem.setAttributeNode objMbrAttribute
 
   Set objMbrAttribute = objDomBal.createAttribute("SaldoFin")
   objMbrAttribute.nodeValue = strSaldoFin
   objRootElem.setAttributeNode objMbrAttribute
 
   CreateXMLBalanza = objDomBal.xml
 
End Function

EJEMPLO
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

PROBLEMAS CON NODOS XML

Publicado por Juan Gilberto (278 intervenciones) el 23/04/2015 17:25:53
Prueba con:
1
2
Set objRootElem = objDomBal.createElement("BCE:Ctas")
   objDomBal.appendChild objRootElem
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Raúl

PROBLEMAS CON NODOS XML

Publicado por Raúl roleeth_rapt@hotmail.com (439 intervenciones) el 12/05/2015 16:32:55
Mira estos ejemplos:
http://www.example-code.com/vb/xml.asp
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar