Los foros del Guille

Si no encuentras respuesta, puedes buscar en el sitio del Guille

Google
 

elGuille.hosting: OFERTA Multi Dominio por 40.95 Eur al mes

Selecciona el foro y pulsa en mostrar:     Mostrar 
De tu interés (algunos de los avisos publicados)

06/jun/2006
REPETIMOS: Por favor, por favor, por favor... no repitas mensajes en varios foros.
Lo único que consigues con ello es confundir a la gente y dar más trabajo a los que responden mensajes. Gracias.

  Foro: .NET VB Cantidad:  Desde:   Hasta:    Aplicar   Responder 
Respuestas a: 57593 - Lectura de nodo anidado
IDAsuntoFechaNick 
57593 Lectura de nodo anidado09/05/14 06:06Manuel_74   
Hola, a todos.. podrían ayudarme?? estoy atascado en la lectura de un array y no sé porque me lee, solo el primer elemento. Miren, tengo esta clase.
<Serializable()> _
Public Class User
    Public Nombre As String
    Public Apellido As String
    Public vehiculo() As Vehiculos
    Public Mail As String
End Class

<Serializable()> _
Public Class Vehiculos
    Public Marca As String
    Public color As String
    Public Puertas() As NumPuertas
End Class

<Serializable()> _
Public Class NumPuertas
    Public Numero As Integer
End Class
Si serializamos y mostramos en formato Xml, tendremos este Xml:
<Nombre>JUAN</Nombre>
<Apellido>LOPEZ</Apellido>
<Vehiculo>
    <Vehiculos>
        <Marca>BMW</Marca>
        <Color>GRIS</Color>
        <Puertas>
            <NumPuertas>
                <Numero>5</Numero>
                <Numero>4</Numero>
                <Numero>3</Numero>
            </NumPuertas>
        </Puertas>
    </Vehiculos>
</Vehiculo>
Bien, tengo este trozo de código para realizar la lectura del nodo , hago lo siguiente:
Dim Request As Petic_Xml
    
For Each l In Request.Vehiculos
    M = l.Marca
    C= l.Color
    For Each Ex In l.Puertas
           builder_cadena_Puertas.Append(Ex.Numero.toString)
        builder_cadena_Puertas.Append(“-“)
       Next
Next
Bien, supuestamente Builder_Cadena_Puertas debería de quedar asi: 5-4-3
Pero lo que me ocurre es que a la hora de realizar la lectura, solo lee el primer dato o sea el 5, y se sale del bucle.

Alguien sabría decirme, porque ocurre esto??
Mil gracias desde ya.

[Editado: Manuel_74, 12/05/2014 05:25:56]
[Manuel_74, 12/05/2014 05:27:22]
IDAsuntoFechaNick 
57597 Re: Lectura de nodo anidado (Resp: 57593)13/05/14 05:55Manuel_74   
Hola a todos, disculpad, pero me falto añadir las etiquetas "
" para que el texto sea legible.. mil perdones.
Saludos.


Si esta respuesta resuelve tu duda, por favor pulsa en la de este mensaje. Gracias.
IDAsuntoFechaNick 
57598 Re: Lectura de nodo anidado (Resp: 57593)13/05/14 11:41Pipe[hgjfkdls]   
Manuel,

La verdad no veo nada raro en el bucle, debería leer todas las puertas sin problemas, si no lo hace seguramente el problema este en la objeto heredado de IEnumerable para que la sentencia For Each funcione correctamente...

Busca el error en la clase o método que haga la lectura de las puertas.

Saludos,

Pipe [hgjfkdls]


Si esta respuesta resuelve tu duda, por favor pulsa en la de este mensaje. Gracias.
IDAsuntoFechaNick 
57599 Re: Lectura de nodo anidado (Resp: 57598)13/05/14 12:19Manuel_74   
Hola Pipe,
Gracias por contestar..
el tema es que tal cual muestro la clase y la leo es lo que tengo, no tengo ningún método a parte que lea, simplemente es ese trocito de código.. donde radicaria el problema.. ni idea.. es muy simple, pero no se que mirar..
Mil gracias de nuevo por esta ahí..


Si esta respuesta resuelve tu duda, por favor pulsa en la de este mensaje. Gracias.
IDAsuntoFechaNick 
57600 Re: Lectura de nodo anidado (Resp: 57593)13/05/14 12:49Manuel_74   
Hola de nuevo, ya he dado con la solución, la pongo por si a alguien le ocurre lo mismo...
He puesto el nodo como atributo, tal que así:
<Serializable()> _
Public Class NumPuertas
    <XmlAttribute()> _
    Public Numero As Integer
End Class
Gracias por todo.


Si esta respuesta resuelve tu duda, por favor pulsa en la de este mensaje. Gracias.
IDAsuntoFechaNick 
57601 Re: Lectura de nodo anidado (Resp: 57600)13/05/14 17:31Pipe[hgjfkdls]   
Manuel,

Fijate en lo siguiente:

<Nombre>JUAN</Nombre>
<Apellido>LOPEZ</Apellido>
<Vehiculo>
    <Vehiculos>
        <Marca>BMW</Marca>
        <Color>GRIS</Color>
        <Puertas>
            <NumPuertas>
                <Numero>5</Numero>
                <Numero>4</Numero>
                <Numero>3</Numero>
            </NumPuertas>
        </Puertas>
    </Vehiculos>
</Vehiculo>

Si pones atención, el Vehiculo tiene Puertas y las Puertas tienen Numero lo cual no esta expresado en tu XML

lo correcto deberia ser:

<Nombre>JUAN</Nombre>
<Apellido>LOPEZ</Apellido>
<Vehiculo>
    <Vehiculos>
        <Marca>BMW</Marca>
        <Color>GRIS</Color>
        <Puertas>
            <Puerta>
                <Numero>5</Numero>
            </Puertas>
            <Puerta>
                <Numero>4</Numero>
            </Puertas>
            <Puerta>
                <Numero>3</Numero>
            </Puertas>
        </Puertas>
    </Vehiculos>
</Vehiculo>

Que quiero decir...en el xml original Las Puertas contiene un Nodo NumPuertas el cual contiene nodos Numeno, mientras que en tu clase NumPuertas solo existe un campo (!Array) Numero.

En PSEUDO codigo seria mas menos asi:
> CLASE VEHICULO
    > PUERTAS

> CLASE PUERTAS
    > LIST PUERTA

> CLASE PUERTA
    > NUMERO

Saludos,

Pipe [hgjfkdls]


Si esta respuesta resuelve tu duda, por favor pulsa en la de este mensaje. Gracias.
IDAsuntoFechaNick 
57602 Re: Lectura de nodo anidado (Resp: 57593)14/05/14 09:04Manuel_74   
Efectivamente querido Pipe, tambien se resuelve de esta forma..
Muchas gracias por esta ahi.. saludos a todos.


Si esta respuesta resuelve tu duda, por favor pulsa en la de este mensaje. Gracias.

 
(c) Guillermo 'guille' Som, 2005-2017  - foros.elGuille v1.0.5.3 (23/Mar/2009 14:50 GMT +1)  - (ASP.NET 2.0 v2.0.50727.8762)
 
Usuarios activos: 12 - App. iniciada: 21/11/2017 0:04:07 GMT - La hora GMT del servidor es: 21/11/2017 00:27:37 GMT