
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

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


0