Welcome, Guest
Username: Password: Remember me
  • Page:
  • 1
  • 2

TOPIC: Uso de xml para crear tabla y meter datos

Re:Uso de xml para crear tabla y meter datos 2 years 3 weeks ago #2369

  • CContreras
  • CContreras's Avatar
  • OFFLINE
  • Moderator
  • Posts: 188
  • Thank you received: 1
  • Karma: 6
Hola,
No se ya tendrás esto solucionado pero, en caso que no sea así, te propongo un método fácil, aunque realmente es sólo para "salir del apuro" y por si es algo puntual.

Puedes importar el XML a un Excel. Te preguntará si quieres importarlo como una tabla XML, le dices que sí. Ahora ya tienes tus campos del XML ordenados en la hoja de cálculo. Después sólo tendrás que importarla con el wizard del SQL Server, que es muy sencillo.

Un saludo,
Carlos I. Contreras.
DBASupport Team.
DBASupport Team
The administrator has disabled public write access.

Re:Uso de xml para crear tabla y meter datos 2 years 3 weeks ago #2370

  • JoseM
  • JoseM's Avatar
  • OFFLINE
  • Senior Boarder
  • Posts: 73
  • Karma: 0
Gracias por ese consejo CContreras, pero en mi caso no resulta 100% fiable, pero si facilita la creación de la tabla.
Aún así, como ya comentaba en el anterior post, ya tengo creada la tabla. El problema lo tengo en recorrer el xml e insertar los datos.

Un saludo
The administrator has disabled public write access.

Re:Uso de xml para crear tabla y meter datos 2 years 19 hours ago #2379

  • JoseM
  • JoseM's Avatar
  • OFFLINE
  • Senior Boarder
  • Posts: 73
  • Karma: 0
Para quien le sirva :)

if (nodo.Name == "PID")
{
if (nodo.HasChildNodes == true)
{
if (nodo.SelectSingleNode("/AMB_A01/PID/PID.1") != null)
{
PID1 = nodo.SelectSingleNode("/AMB_A01/PID/PID.1").InnerText;
}
//Obtenemos una coleccion de todos los nodos PID3
XmlNodeList listaPID3 = mensajeXML.SelectNodes("AMB_A01/PID/PID.3");

//Creamos un unico PID3
XmlNode unPID3;

//Recorremos toda la lista de PID3s
for (int i = 0; i < listaPID3.Count; i++)
{
//Obtenemos cada PID3
unPID3 = listaPID3.Item(i);

//Obtenemos los valores del PID3
if (unPID3.SelectSingleNode("CX.1") != null)
{
PID3_CX1 = unPID3.SelectSingleNode("CX.1").InnerText;
}
if (unPID3.SelectSingleNode("CX.4") != null)
{
PID3_CX4 = unPID3.SelectSingleNode("CX.4").InnerText;
}
if (unPID3.SelectSingleNode("CX.5") != null)
{
PID3_CX5 = unPID3.SelectSingleNode("CX.5").InnerText;
}
#region CX9
if (unPID3.SelectSingleNode("CX.9") != null)
{
//Obtenemos una coleccion de todos los nodos de CX.9
//XmlNodeList listaNodosHijoCX9 = mensajeXML.SelectNodes("CX.9");
XmlNodeList listaNodosHijoCX9 = unPID3.SelectNodes("CX.9");
//Creamos un unico cwe
XmlNode cwe;
for (int j = 0; j < listaNodosHijoCX9.Count; j++)
{
//Obtenemos cada cwe
cwe = listaNodosHijoCX9.Item(j);
if (cwe.SelectSingleNode("CWE.1") != null)
{
PID3_CX9_CWE1 = cwe.SelectSingleNode("CWE.1").InnerText;
}
if (cwe.SelectSingleNode("CWE.2") != null)
{
PID3_CX9_CWE2 = cwe.SelectSingleNode("CWE.2").InnerText;
}
if (cwe.SelectSingleNode("CWE.5") != null)
{
PID3_CX9_CWE5 = cwe.SelectSingleNode("CWE.5").InnerText;
}
if (cwe.SelectSingleNode("CWE.6") != null)
{
PID3_CX9_CWE6 = cwe.SelectSingleNode("CWE.6").InnerText;
}
}
}

Es una pequeña parte del código, pero lo suficiente para ver como coger valores de nodos hijos de un nodo que se repite.

Un saludo
The administrator has disabled public write access.

Re:Uso de xml para crear tabla y meter datos 2 years 15 hours ago #2380

  • G3DBA
  • G3DBA's Avatar
Muchas gracias.
The administrator has disabled public write access.
  • Page:
  • 1
  • 2
Moderators: CContreras, g3dba
Time to create page: 0.203 seconds

Buscar en el sitio

Stellar Phoenix

Stellar Phoenix SQL Database Repair MS SQL database repair software that restores all corrupt or inaccessible SQL Databases components
 
Stellar Phoenix Database Repair for MySQL A quick and 3-Step recovery software to restore corrupt or damaged MySQL database files
 
Stellar Phoenix SQL Backup Recovery

Noticias Recientes

Migramos el Foro

Si requieren consultar información anterior del foro, la pueden encontrar en la sección Foro Anterior

TIPS

Para cambiar el esquema por default de tu conexión en Oracle solo es necesario ejecutar:

ALTER SESSION SET current_schema="Nombre_esquema"

Necesitas Soporte

Proveemos soporte de base de datos SQL Server, Sybase, Oracle y MySQL. Nuestro servicio, le permite contar con un experto las 24 horas al día los 365 días del año.

Nuestros servicios están diseñados para que solo pague por el soporte que necesita. El pago se realiza de manera mensual basado en el nivel de cobertura que requiera. En promedio este costo va de un 30% a un 60% menos, de lo que le pagaría a un DBA en sitio.

Contactanos