Ver Mensaje Individual
  #5 (permalink)  
Antiguo 31/03/2005, 02:32
aevora
 
Fecha de Ingreso: febrero-2005
Mensajes: 18
Antigüedad: 20 años
Puntos: 0
xKnown he "descubierto" algunas cosas, primero modifique tu modificacion (valga la redundancia) del siguiente modo:

Código:
Public Function StrXml2Table(ByVal StrXML As String) As DataTable

        Dim ms As MemoryStream
        Dim sw As StreamWriter
        Dim kk() As Byte  'Añadido

        Try
            Dim ds As New DataSet
            ms = New MemoryStream(StrXML.Length)
            sw = New StreamWriter(ms)

            sw.Write(StrXML)
            kk = ms.GetBuffer  'Añadido

            ds.ReadXml(ms) 'Aqui pongo un punto de ruptura

            ms.Close()

            Return ds.Tables(0)

        Catch ex As Exception

            Throw New Exception("Error en StrXml2Table: " & ex.ToString)

        Finally

            If Not sw Is Nothing Then
                sw.Close()
            End If
            If Not ms Is Nothing Then
                ms.Close()
            End If

        End Try

    End Function
Lo que hize es poner un punto de ruptura en ds.ReadXml(ms) e hize una inspeccion rapida de la variable kk y todos los bytes de la matriz estan a 0; y creo que es por eso que me da el error de que falta el elemento raiz.

El contenido,por si sirve de algo, del parametro strXML es:

Código:
<?xml version="1.0" encoding="ISO-8859-1"?>
<ROOT>
<MAESMONBAK_record _ID = "0000" DENOM = "COTO" PROVIN = "21" ESPEC = "041" GRUPOB = "26" DEPART = "CT" DELEG = "08" COMARCA = "01" CLIENTE = "0099" CENTRONEG = "10" GRUPACT = "30" ACTIVIDAD = "170">
  <DPROVIN_MV DPROVIN = "HUELMA"/>
  <DGRUPOB_MV DGRUPOB = "ANTER"/>
</MAESMONBAK_record>
</ROOT>
Un saludo y gracias.