Imagen

DESCARGA SOFTWARE PARA FACTURA ELECTRONICA DE AQUI.
Facturacion, Validacion, Addendas, Librerias de programacion, etc.


CARTA PORTE V3.1

ECODEX TIENE ESTOS NUEVOS DATOS DE CONTACTO :
Comercializacion y Ventas - Evelia Vicke evicke@ecodex.com.mx 33-16-03-03-48
Soporte - Humberto Guerrero soporte@ecodex.com.mx 33-34-90-46-03


.

Como actualizar algunos atributos de xml en vbnet

Para quienes programan Visual Basic aqui esta la solucion
[[ FORO CERRADO DEBIDO A QUE YA LA INFORMACION YA NO ES VIGENTE ]]
Cerrado
Celestino
Mensajes: 48
Registrado: Lun Dic 19, 2011 2:33 pm

Como actualizar algunos atributos de xml en vbnet

Mensaje por Celestino »

buenas tardes, extoy desarrollando esto de la factura con vb net 2008, y ya estoy en lo ultimo de pasar los valores del sello digital, num. de serie y certificado (que esos los obtenemos ya sea del openssl, o de alguna dlls, etc.) en mi caso estoy usando los componentes chilkat que ya estan previamente instalados.
Bueno la idea es que estoy usando la funcion declarada de forma general XmlDocument posteriormente voy pasando los parametros por medio de procedimientos y al llegar al sellado pues ya no logro actualizar los datos de nocertificado, sello, certificado por que todo esto se va creando temporalmente antes de aplicar el metodo Save.
Que tambien no se como obtener el xml generado temporalmente tambien antes de aplicar el metodo save, parte del codigo es el siguiente y me falta agregar los datos del sello, numserie, etc. para eso se compila bien, al ejecutar me da el error: System.NullReferenceException: Object reference not set to an instance of an object.
Me puede hechar la mano no se como aplicar esto de la funcion GetElementsByTagName

Código: Seleccionar todo

Private Doc As New XmlDocument()

private Sub crea_ejemplo()
Dim dec As XmlDeclaration = Doc.CreateXmlDeclaration("1.0","UTF-8", "yes")
 Doc.AppendChild(dec)

 Dim DocRoot As XmlElement = Doc.CreateElement("Comprobante")   

 atributoscomprobante(DocRoot)
 aplicaemisor(DocRoot)
 ... otros elementos
 sellar(DocRoot)
 Doc.Save("C:\OutDocument.xml") 'por ultimo guardamos
end sub

Private Sub atributoscomprobante(acepta As XmlElement) 
	Dim atrib As XmlNode							
        entre otros atributos ....		
	atrib = Doc.CreateAttribute("total")
        atrib.Value = "350.00"
        acepta.Attributes.Append(atrib)
                
        atrib = Doc.CreateAttribute("noCertificado")
        atrib.Value = ""
        acepta.Attributes.Append(atrib)        
		
	atrib = Doc.CreateAttribute("Certificado")
        atrib.Value = ""
        acepta.Attributes.Append(atrib) 
               
	atrib = Doc.CreateAttribute("sello")
        atrib.Value = ""
        acepta.Attributes.Append(atrib) 
		
        Doc.AppendChild(acepta)
End Sub

private sub sellar()
 dim noCertificado as string = "30001000000100000800" variables x definidas
 Doc.GetElementsByTagName("Comprobante", "http://www.lapagina/2")(0).Attributes("noCertificado").Value = noCertificado
 Doc.GetElementsByTagName("Comprobante", "http://www.lapagina/2")(0).Attributes("Certificado").Value = Certificado
End Sub
la funcion GetElementsByTagName actualizara los datos pero me arroja error, que puedo hacer o bien despues de aplicar el metodo save es posible crear otros atributos en el elemento comprobante...?
se los agradesco muchas gracias si me dieran alguna idea.
jerryeagle
Mensajes: 19
Registrado: Vie Mar 16, 2012 6:14 am

Re: Como actualizar algunos atributos de xml en vbnet

Mensaje por jerryeagle »

Yo mejor utilizaria xDocument (De LiQ) es facilisimo con este.
solo tendrias que hacer algo asi para actualizar Atributos:

Dim Root As xElement = xDocument.Loac(ArchivoXML).Root
Root.@Atributo = Valor

O usar el Metodo SetAttribute el cual crea, modifica o elimina.
Cerrado