ing_Ale escribió:techsjll escribió:Buenas tardes a todos, estos cuates del SAT nos traen de cabeza, alguien me podria ayudar a poner el BOM, estoy desarrollando en VB6.
El codigo que tengo es el siguiente:
Private Function CrearDOM() As MSXML2.DOMDocument60
Dim oDOM As New MSXML2.DOMDocument60
oDOM.async = False
oDOM.validateOnParse = False
oDOM.resolveExternals = False
Dim Nodo As MSXML2.IXMLDOMNode
Set Nodo = oDOM.createProcessingInstruction("xml", "version=""1.0"" encoding=""utf-8""")
oDOM.appendChild Nodo
Set Nodo = Nothing
Set CrearDOM = oDOM
End Function
Intente poner los caracteres al principio del archivo como una cadena, pero me da error
saludos
hola!! ya has tenido alguna respuesta desarrollando en vb6?
Hola Amigos
Les comparto el código en VB6 para el BOM (Byte Order Mark) de los archivos xml a generar
' Aquí va el codigo del Sub relacionado con la Generacion del Archivo XML
.
.
.
' Guardamos el Archivo XML Generado
oDoc.save strRutaXML & Trim(RS!Serie) & "_" & Trim(RS!Folio) & ".xml"
'---- Inicia rutina para re-guardar el xml con BOM (Byte Order Mark) ----------
Dim stm As ADODB.Stream
Dim strXMLRuta As String
strXMLRuta = strXMLRuta & Trim(RS!Serie) & "_" & Trim(RS!Folio) & ".xml"
Set stm = New ADODB.Stream
stm.Open
stm.Charset = "UTF-8"
stm.LoadFromFile strXMLRuta
If fileExists(strXMLRuta) = True Then
Kill (strXMLRuta)
End If
stm.SaveToFile strXMLRuta
'---- Termina rutina ----------------------------------------------------------
Como pueden ver el objetivo de la rutina es Re-Guardar el XML Generado, y si la Autoridad decide dejar su validador con el BOM, entonces habrá que implementar en nuestros programas una herramienta que permita reguardar con BOM todos los archivos xml generados anteriormente, cosa que en mi caso ya tengo implementada, y en la cual utilice la rutina mostrada arriba.
Espero que este codigo o rutina les sea de mucha utilidad.