Foros del Web » Programación para mayores de 30 ;) » .NET »

VB .NET y Colecciones.

Estas en el tema de VB .NET y Colecciones. en el foro de .NET en Foros del Web. Bueno verán, tengo el siguiente problema. Voy hacer una función para poder crear nodos en un fichero XML. La cuestión es que a esta función ...
  #1 (permalink)  
Antiguo 03/04/2005, 11:38
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 2.429
Antigüedad: 20 años, 11 meses
Puntos: 7
VB .NET y Colecciones.

Bueno verán, tengo el siguiente problema.

Voy hacer una función para poder crear nodos en un fichero XML. La cuestión es que a esta función tengo pensado meterle tres parametros.

- El Xpath apartir del cual se va a crear el nodo (Es decir el nodo padre).
- El nombre del nodo a crear. (<usuario></usuario>)
- Los atributos. <usuario atributo1="valor" atributo2="valor"></usuario>

La cuestión es la siguiente, para pasar los atributos, había pensado en crear una colección, (Es lo más indicado, ¿No?), ya que un nodo puede llevar dos atributos, o 5.

Entonces, podrían ponerme un ejemplo de como podría hacer esto, o donde podría mirar algunos. He mirado la clase Collection, pero sinceramente, sin ver un ejemplo, me está costando un poco.

La idea sería:
Dim miColeccion as New MiClaseColeccion
Dim Atributo as New Atributo("nombreAtributo", "Valor")
Dim Atributo2 as New Atributo("nombreAtributo2", "Valor2")
miColeccion.Add(Atributo, Atributo2)

¿Podría ser algo asi?, por favor, haber si alguien puede echarme un cable, ya que estoy algo perdido.

Saludos.
__________________
Charlie.
  #2 (permalink)  
Antiguo 03/04/2005, 17:24
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 2.429
Antigüedad: 20 años, 11 meses
Puntos: 7
Bueno, bueno, bueno, últimamente está un poco paradete el foro, eh !!!, o es que tienen miedo a mis posts de programadores avanzados, jejejeje (Es broma, ¿Eh?, no se lo tomen a mal).

Bueno, al final solucione el tema creando una clase heredara de CollectionBase. Voy a dejar aqui el código, por si le interesa a alguien.

El funcionamiento es muy simple, yo creo una clase del tipo xmlColeccion y despues voy agregando los atributos a usar:
Dim ColecionXML as xmlColeccion = nwe xmlColeccion
ColeccionXML.Insertar(New xmlAtributo("Nombre", "Valor"))
ColeccionXML.Insertar(New xmlAtributo("OtroNombre", "OtroValor"))

Bueno, el código es el siguiente (Son dos clases, naturalmente, xmlColeccion y xmlAtributo)



************************************
************************************

Public Class xmlColeccion
Inherits System.Collections.CollectionBase

Default Property item(ByVal indice As Integer) As xmlAtributo
Get
Return CType(innerlist.Item(indice), xmlAtributo)
End Get
Set(ByVal Value As xmlAtributo)
innerlist.Item(indice) = Value
End Set
End Property

Sub Insertar(ByVal value As xmlAtributo)
innerlist.Add(value)
End Sub
End Class

************************************
************************************


************************************
************************************

Public Class xmlAtributo
Dim NAtributo As String 'Nombre del Atributo
Dim VAtributo As String 'Valor del Atributo

#Region "CONSTRUCTORES"

Private Sub New()
End Sub

Sub New(ByVal atributo As String, ByVal valor As String)
Me.NombreAtributo = atributo
Me.ValorAtributo = valor
End Sub

#End Region

#Region "PROPIEDADES"
Public Property NombreAtributo() As String
Get
Return NAtributo
End Get
Set(ByVal Value As String)
NAtributo = Trim(Value)
End Set
End Property

Public Property ValorAtributo() As String
Get
Return VAtributo
End Get
Set(ByVal Value As String)
VAtributo = Value
End Set
End Property
#End Region
End Class

************************************
************************************


Espero que alguno le valga para algo.

RootK, xKnow y cualquier otro guru, si leen esto . . . . ¡¡ Ya podeis ir dandome sugerencias o cometnarios !!

Bueno, nos vemos, y saludos.
__________________
Charlie.
  #3 (permalink)  
Antiguo 04/04/2005, 10:57
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 4 meses
Puntos: 7
Me parece que con un HashTable hubiera bastado para no crear una clase adicional que guarde "atributo" -> "valor".

Saludos
PD. No soy ningun gurú
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #4 (permalink)  
Antiguo 04/04/2005, 11:01
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Hola chcma. el code no se ve mal, ahora ya que sabes como hacer las cosas vienen otros puntos "el estilo de programacion".

No quiero decir que tu code esta mal hecho, pero si le podemos aplicar algo mas de estilo para seguir algunas reglas...

Por ejemplo, podría quedar algo así tu code:

Cita:
Public Class xmlAtributo
Dim _nombreAtributo As String 'Nombre del Atributo
Dim _valorAtributo As String 'Valor del Atributo
..
...
Public Property NombreAtributo() As String
Get
Return _nombreAtributo
End Get
Set(ByVal Value As String)
_nombreAtributo = Value.trim
End Set
End Property

Public Property ValorAtributo() As String
Get
Return _valorAtributo
End Get
Set(ByVal Value As String)
_valorAtributo = Value
End Set
End Property
Y te recomiendo que trates de programar en inglés, ya que es el idioma universal de la programación... pero a fin de cuentas cada quien puede hacerlo como desee, pero si seguimos reglas, estilos, etc será mejor.

Salu2
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #5 (permalink)  
Antiguo 04/04/2005, 14:47
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 2.429
Antigüedad: 20 años, 11 meses
Puntos: 7
Ahá, y despues entonces, com harías para recorrer el hashtable?
__________________
Charlie.
  #6 (permalink)  
Antiguo 05/04/2005, 00:26
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 4 meses
Puntos: 7
No le veo ninguna complicación a usar el siguiente código para recorrer el HashTable
Código:
For Each obj As Object In HashTable1
     Console.WriteLine(DirectCast(obj, DictionaryEntry).Key) ' Haces un cast del objeto para poder acceder a los valores "clave" -> "valor"
Next
Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #7 (permalink)  
Antiguo 16/11/2007, 00:36
hok
 
Fecha de Ingreso: noviembre-2007
Mensajes: 1
Antigüedad: 16 años, 5 meses
Puntos: 0
Re: VB .NET y Colecciones.

hola chcma, muy bueno tu aporte (aunque ya pasaron varios años) te digo a mi me re sirvio. ME SACO DE UN APURO TERRIBLE!!, JAJAJA
muchas gracias.

Saludos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:43.