Foros del Web » Programando para Internet » ASPX (.net) »

Leer xml

Estas en el tema de Leer xml en el foro de ASPX (.net) en Foros del Web. Buenas noches a todos, tengo una duda de como leer un fichero xml de este tipo: <CLIENTE> <NOMBRE></NOMBRE> <DIRECCION></DIRECCION> <PRODUCTO_CONTRATADO> <PRODUCTO> <MARCA></MARCA> <TIPO></TIPO> </PRODUCTO> </PRODUCTO_CONTRATADO> ...
  #1 (permalink)  
Antiguo 26/08/2010, 14:53
 
Fecha de Ingreso: enero-2004
Ubicación: PAïS LLïONES
Mensajes: 162
Antigüedad: 20 años, 3 meses
Puntos: 3
Leer xml

Buenas noches a todos, tengo una duda de como leer un fichero xml de este tipo:

<CLIENTE>
<NOMBRE></NOMBRE>
<DIRECCION></DIRECCION>
<PRODUCTO_CONTRATADO>
<PRODUCTO>
<MARCA></MARCA>
<TIPO></TIPO>
</PRODUCTO>
</PRODUCTO_CONTRATADO>
</CLIENTE>

Asi con esto habria "n" clientes y cada cliente puede tener un numero indeterminado de <PRODUCTO>

Me orientais?

Gracias
  #2 (permalink)  
Antiguo 26/08/2010, 14:58
Avatar de dadabit  
Fecha de Ingreso: febrero-2009
Ubicación: Coahuila, México
Mensajes: 145
Antigüedad: 15 años, 2 meses
Puntos: 1
Respuesta: Leer xml

Checa este link, te puede ayudar
http://www.devjoker.com/contenidos/A...XML-con-C.aspx
  #3 (permalink)  
Antiguo 27/08/2010, 12:25
 
Fecha de Ingreso: enero-2004
Ubicación: PAïS LLïONES
Mensajes: 162
Antigüedad: 20 años, 3 meses
Puntos: 3
Respuesta: Leer xml

Perdonar chicos me he leido el documento, que esta muy bien , pero no acabo de sacarlo, algo me falla, os pongo el codigo
Código ASP:
Ver original
  1. Dim socios As XmlNodeList = b.GetElementsByTagName("SOCIOS")
  2.         Dim lista As XmlNodeList = (CType(socios(0), XmlElement)).GetElementsByTagName("CLIENTE")
  3.  
  4.         For Each nodo As XmlElement In lista
  5.             Dim i = 0
  6.             Dim nId = nodo.GetElementsByTagName("NOMBRE")
  7.  
  8. Response.Write("NOMBRE: " & nId(i).InnerText & "<br>")
  9.             Dim lista2 As XmlNodeList = (CType(lista(i), XmlElement)).GetElementsByTagName("PRODUCTO_CONTRATADO")
  10.             Dim lista3 As XmlNodeList = (CType(lista2(i), XmlElement)).GetElementsByTagName("PRODUCTO")
  11.  
  12.  
  13.             For Each nodo2 As XmlElement In lista3
  14.                 Dim a = 0
  15.                 Dim tipo = nodo2.GetElementsByTagName("TIPO")
  16.                 Dim trade = nodo2.GetElementsByTagName("MARCA")
  17.                 Response.Write("Nombre: " & tipo(a).InnerText & "<br>")
  18.                 Response.Write("Marca: " & trade(a).InnerText & "<br>")
  19.  
  20.             Next
  21.  
  22.  
  23.         Next
  #4 (permalink)  
Antiguo 28/08/2010, 07:55
Avatar de JBalde  
Fecha de Ingreso: febrero-2005
Ubicación: Madrid
Mensajes: 118
Antigüedad: 19 años, 2 meses
Puntos: 5
Respuesta: Leer xml

Para gustos colores y aunque el documento ese esta muy bien, a mi me gusta usar mas xpath para obtener y leer datos. De esta forma te dejo un ejemplo de como leer el xml:

Código:
Dim nombre As String
Dim marca As String
Dim document As New XmlDocument

document.Load("ruta.xml")

nombre = document.SelectSingleNode("/CLIENTE/NOMBRE").InnerText
marca = document.SelectSingleNode("/CLIENTE/PRODUCTO_CONTRATADO/PRODUCTO/MARCA").InnerText
Esto es un ejemplo sencillo de como seria, te recomiendo que busques algún manual de xpath (es estándar, da igual el lenguaje) y bueno, es algo sencillo, luego puedes recorrer varios nodos o clientes recogiendo en lugar de un nodo con SelectSingleNode, usando SelectNodes y te devolverá un XmlNodeList al que le puedes hacer un for y recorrerlo o un foreach de XmlNode y ya vas leyendo.
  #5 (permalink)  
Antiguo 30/08/2010, 03:33
 
Fecha de Ingreso: enero-2004
Ubicación: PAïS LLïONES
Mensajes: 162
Antigüedad: 20 años, 3 meses
Puntos: 3
Respuesta: Leer xml

AL final he visto algun ejemplo por ahi que me parece mas simple y es leerlo con un dataset:

Código:
For Each dt As DataRow In el_dataset.Tables("CLIENTE").Rows
            Dim id = (dt.Field(Of Integer)("CLIENTE_ID"))
            Response.Write(dt.Field(Of String)("DIRECCION"))
            
            For Each dr As DataRow In el_dataset.Tables("PRODUCTO").Select("PRODUCTOS_ID =" & id)
                Response.Write("NOMBRE: " & dr.Field(Of String)("TIPO") & "<br>")
                Response.Write("MARCA: " & dr.Field(Of String)("MARCA") & "<br>")

            Next
            Response.Write("-----------------------------------------------------------------<br>")
        Next

ahora lo que quisiera es una forma curiosa de representar estos valores, he pensando en algo asi como un treeview, pero ni idea.

Última edición por Zizo; 30/08/2010 a las 03:47

Etiquetas: xml, aspx
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 06:01.