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 1 month 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 1 month 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 1 month 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 4 weeks 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.211 seconds