Foros del Web » Programando para Internet » ASP Clásico »

Leer titulos de columna o tagname de un xml

Estas en el tema de Leer titulos de columna o tagname de un xml en el foro de ASP Clásico en Foros del Web. Saludos: Genero un listado en asp, con datos de una consulta o SP de SQL server 2000, transformados a xml con el método for xml ...
  #1 (permalink)  
Antiguo 29/04/2014, 10:06
 
Fecha de Ingreso: enero-2009
Mensajes: 4
Antigüedad: 15 años, 3 meses
Puntos: 0
Pregunta Leer titulos de columna o tagname de un xml

Saludos:

Genero un listado en asp, con datos de una consulta o SP de SQL server 2000, transformados a xml con el método for xml auto.

de este orden son la consulta y el resultado
Código:
select nombre,fono
from personas
for xml auto
Código:
<base_persona nombre="Juan" fono="694123"/><base_persona nombre="Pedro" fono="912567"/>
Con ASP yo obtengo los registros resultandtes de la consulta a través de una componente (dll) de VB6 y leo los registros así:
Código:
	Set  objAdmConsulta = Server.CreateObject("comComponente.componente")    
	rsConsulta = objAdmConsulta.traePersonas()
	Set objXMLdetalle  = Server.CreateObject("MSXML2.DOMdocument.3.0")
	set objAdmConsulta = Nothing
        'response.write("<textarea>"&rsConsulta&"</textarea>")':response.flush
	rsConsulta  = "<Raiz>" & rsConsulta & "</Raiz>"
	objXMLdetalle.loadXML(rsConsulta)
	Set objDOM = objXMLdetalle.selectSingleNode("//Raiz")
	Set objXMLdetalle = Nothing


	For Each reg In objDOM.childNodes
            response.write("<td>" & reg.getAttribute("nombre") & "/td")
            response.write("<td>" & reg.getAttribute("fono") & "/td")
        next
De esta forma leo los registros de las consultas para todos los listados, pero sólo los registros, no encuentro la manera de saber la cantidad de columnas o los nombres de las columnas. En el fondo lo que busco es poder generar una tabla en html, a partir de cualquier xml con formato como en el ejemplo, que quede como la tabla de la consulta en la base de datos, con títulos y con todas las filas y columnas.

¿como puedo hacer eso?
  #2 (permalink)  
Antiguo 30/04/2014, 20:12
 
Fecha de Ingreso: abril-2014
Mensajes: 32
Antigüedad: 10 años
Puntos: 0
Respuesta: Leer titulos de columna o tagname de un xml

objDOM.childNodes.length ' Cantidad de nodos (Cantidad de Registros)
objDOM.childNodes(f).nodeName ' Nombre del nodo "f" (Nombre de la tabla: "base_persona")
objDOM.childNodes(f).Attributes.length ' Cantidad de atributos del nodo "f" (Cantidad de columnas: 2)
objDOM.childNodes(f).Attributes(c).Name ' Nombre del atributo "c" del nodo "f" (Nombre del campo: "nombre","fono")
objDOM.childNodes(f).Attributes(c).Value ' Valor del atributo "c" del nodo "f" (Valor del campo)

Mira "f" como las filas y "c" como las columnas.

Para crear una tabla, en tu caso:

1) Comprueba que la cantidad de nodos sean mayor a cero (0).
2) Recorre los Nombre de los atributos del primer nodo para tener los nombres de las columnas. "f = 0", "c = 0 ... Attributes.length-1 .
3) Recorre los valores (Eso ya lo haces).

Última edición por rmaeloy; 30/04/2014 a las 20:27

Etiquetas: asp, tabla, xml
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 11:57.