lunes, 17 de abril de 2017

Recorrer String con texto en XML

En este caso, se requiere agregar la información devuelta por un servicio a una lista de objetos:
xml devuelto por el servicio, almacenado en variable String "salida":
 

        JOSE LUIS                          
        BUGARIN                                 
        PECHE                                   
        19820424
        M
    
Recorremos los nodos del xml:
 
Dim listaResultado = New List(Of ObjetoBE)
Dim obj As New ObjetoBE
Dim xml As XDocument = XDocument.Parse(salida)
Dim resultadoXML = xml.Descendants("RESPUESTA")
If resultadoXML.Count > 0 Then
     For Each nodo As XElement In resultadoXML
        Dim Nnombre = nodo.Descendants("NOMBRES").FirstOrDefault
        obj .Nombres = IIf(IsNothing(Nnombre), "", Nnombre.Value.Trim)

        Dim NApePaterno = nodo.Descendants("APPAT").FirstOrDefault
        obj .ApePaterno = IIf(IsNothing(NApePaterno), "", NApePaterno.Value.Trim)

        Dim NApeMaterno = nodo.Descendants("APMAT").FirstOrDefault
        obj .ApeMaterno = IIf(IsNothing(NApeMaterno), "", NApeMaterno.Value.Trim)

        Dim NFechaNacimiento = nodo.Descendants("FENAC").FirstOrDefault
        obj .FechaNacimiento = IIf(IsNothing(NFechaNacimiento), "", NFechaNacimiento.Value.Trim)

        Dim NSexo = nodo.Descendants("SEXO").FirstOrDefault
        obj .Sexo = IIf(IsNothing(NSexo), "", NSexo.Value.Trim)
    Next

    listaResultado.Add(obj)
Else
    mensaje = "No devolvió resultados"
End If

Convertir una Imagen a Byte y Byte a Imagen

Las siguientes funciones convierten una imagen desde una ruta física a byte y viceversa...
 
Public Function ConvertirImagen_Byte() As Byte()
    Dim rutaImagen = "D:\Documentos\ImagenOrigen\s1.jpg"
    Using foto As FileStream = New FileStream(rutaImagen, FileMode.Open)
        Dim reader As BinaryReader = New BinaryReader(foto)
        Dim imagen(foto.Length) As Byte
        reader.Read(imagen, 0, Convert.ToInt32(foto.Length))
        Return imagen
    End Using
End Function


Protected Sub ConvertirByte_Imagen(ImgBytes As Byte())
    Dim ruta As String = "D:\Documentos\ImagenDestino\s1.jpg" 
    Dim ms As MemoryStream = New MemoryStream(ImgBytes)
    Dim imagen = New System.Drawing.Bitmap(ms)
    imagen.Save(ruta, System.Drawing.Imaging.ImageFormat.Jpeg)
End Sub