
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 DOMDocumentSet XMLInstruccion = objDom.createProcessingInstruction("xml", "version='1.0' encoding='UTF-8'")
objDom.appendChild XMLInstruccionSet 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 objRootElemCall XMLHeader
Fila = 1With 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 objDocAttributeSet objDocAttribute = objDom.createAttribute("RFC")
objDocAttribute.nodeValue = "XXAX010101X01"
objRootElem.setAttributeNode objDocAttributeSet objDocAttribute = objDom.createAttribute("Mes")
objDocAttribute.nodeValue = FrmBalanzaXML.Combo1.Text
objRootElem.setAttributeNode objDocAttributeSet objDocAttribute = objDom.createAttribute("Anio")
objDocAttribute.nodeValue = FrmBalanzaXML.Combo2.Text
objRootElem.setAttributeNode objDocAttribute If OptionXML = 1 ThenSet objDocAttribute = objDom.createAttribute("TipoEnvio")
objDocAttribute.nodeValue = FrmBalanzaXML.Combo3.Text
objRootElem.setAttributeNode objDocAttributeSet objDocAttribute = objDom.createAttribute("FechaModBal")
objDocAttribute.nodeValue = "2015-04-30" 'FrmBalanzaXML.Combo3.Text
objRootElem.setAttributeNode objDocAttributeEnd 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 DOMDocumentSet objRootElem = objDomBal.createElement("Ctas")
objDomBal.appendChild objRootElemSet objMbrAttribute = objDomBal.createAttribute("NumCta")
objMbrAttribute.nodeValue = strNumCta
objRootElem.setAttributeNode objMbrAttributeSet objMbrAttribute = objDomBal.createAttribute("SaldoIni")
objMbrAttribute.nodeValue = strSaldoIni
objRootElem.setAttributeNode objMbrAttributeSet objMbrAttribute = objDomBal.createAttribute("Debe")
objMbrAttribute.nodeValue = strDebe
objRootElem.setAttributeNode objMbrAttributeSet objMbrAttribute = objDomBal.createAttribute("Haber")
objMbrAttribute.nodeValue = strHaber
objRootElem.setAttributeNode objMbrAttributeSet objMbrAttribute = objDomBal.createAttribute("SaldoFin")
objMbrAttribute.nodeValue = strSaldoFin
objRootElem.setAttributeNode objMbrAttributeCreateXMLBalanza = objDomBal.xml
End Function

- EJEMPLOS-XML.zip(1,3 KB)
Valora esta pregunta


0

