Inicio > C#, Programacion, Usac > Leer Xml en C# (ASPX) y migrarlos a SQLSERVER

Leer Xml en C# (ASPX) y migrarlos a SQLSERVER


Bueno creo q esto talvez sea posteado demasiado tarde ya que ya se entrego los proyectos de progra 2 (IPC2)… pero como miro que el otro semestre se volvera a repetir de  nuevo la misma dinamica de proyectos… aqui esta como leer xml en C# (esto me costo aprenderlo solo, y con la retocada de unos cuates) y como perdi mucho tiempo en eso… y no encontre un sitio que lo explicara claramente pues ahi les pongo la forma de hacerlo..

Primero una entrada sencilla de XML… imaginemos el siguiente codigo de xml…

<definicion>
<Documento>
<IdDocumento> Cedula </IdDocumento>
<Descripcion> Cedula de Vecindad </Descripcion>
</Documento>
<Documento>
<IdDocumento> Pass </IdDocumento>
<Descripcion> Pasaporte </Descripcion>
</Documento>
</definicion>

//primero importemos las siguientes librerias  (parte 1)

// perdon por la identacion wordpress no la maneja

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Xml;

// creamos nuestra clase y nuestro metodo que leera el xmlpublic partial

class Xml : System.Web.UI.Page
{

public void CargarXml(String path) { // tenemos la direccion del archivo xml
try {// y colocaremos dentro de un try la lectura por cualquier error

XmlDocument DocumentXml = new XmlDocument(); // donde haremos la representancion del documento xml y la lectura de el atravez de load()
DocumentXml.Load(path); // le agregamos la direccion de donde esta el xml
XmlNodeList definicion = DocumentXml.GetElementsByTagName(“definicion”); //luego creamos un node list q atravez del getelementsbytagName devuele una lista de nodos xmlnode que representa un nodo del archivo xml

//luego recorriendo cada nodo q esta en definicion creamos de nuevo una lista para “Documento”

foreach (XmlElement nodo in definicion){

XmlNodeList Documento =
((XmlElement)nodo).GetElementsByTagName(“Documento”);

// por ultimo por cada xlElement q se encuentre en Documento esta se ingresa a la base de datos. claro anteriormente realizando la conexion y creando los querys


foreach (XmlElement nodoDocumento in Documento){

XmlNodeList pIdDocumento = nodoDocumento.GetElementsByTagName(“IdDocumento”);
XmlNodeList pDescripcion = nodoDocumento.GetElementsByTagName(“Descripcion”);

try{
string IdDocumento = pIdDocumento[aDocumento].InnerText;
string Descripcion = pDescripcion[aDocumento].InnerText;
SqlDataSource1.InsertCommand = (“Insert into Documento (IdDocumento,Descripcion) ”
+  “Values  (‘” + pIdDocumento[aDocumento].InnerText + “‘,'” +
pDescripcion[aDocumento].InnerText + “‘)”);
SqlDataSource1.Insert();

}
catch{}
}
}

yo se q  no esta muy explicado pero es cuestion de analizarlo y veran la idea  sentido en el cual se maneja el la entrada del xml.. Bueno pera de igual manera hay xml de mayor dificicultad, como ir anindando nodoxml entre otros y crear atributos a la par de los nodos como aqui

<Hotel Cadena=”CA001″>

….. mas sentencias… podrian ser anidadas

</hotel>

Bueno como desgraciadamente me tengo que ir no podre explicar la lecturas de este tipo… pero subire mi archivo de entrada xml y el parser q lee el xml de mi segundo proyecto de IPC2… el codigo que esta aqui funciona nitido 100%, podra tener errores de tipo semantico en algun caso, dado la forma q hicimos las tablas y sus primary key… y la conexion a la base de datos, no se expecifica ( la cual podran hacer manual desde c# o usando un controlador), y por ultimo les podria dar problema las fechas con sqlserver mayores al 2005…
Leer Xml IPC2 (2do semestre 2008)

Bueno espero q sirva

Categorías:C#, Programacion, Usac
  1. Aún no hay comentarios.
  1. No trackbacks yet.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: