leer XML con C#
Hola, necesito información sobre cómo leer un fichero XML y acceder a su contenido con C#, agradecerÃa ejemplos de código, muchas gracias
Para leer de un fichero xml tienes q utilizar un xml reader, te envio l código:
public class Configuracion
{
private string strNombreServidorWeb;
private string strNombreServidorDatos;
private string strDominio;
private string strdireccionip;
private string strcontraseñaServDatos;
private string strcontraseñaSerWeb;
private string strNombreBaseDatos;
private string strUsuarioBaseDatos;
public string NombreServidorWeb
{
get
{
return strNombreServidorWeb;
}
set
{
strNombreServidorWeb=value;
}
}
public string NombreServidorDatos
{
get
{
return strNombreServidorDatos;
}
set
{
strNombreServidorDatos=value;
}
}
public string Dominio
{
get
{
return strDominio;
}
set
{
strDominio=value;
}
}
public string DireccionIp
{
get
{
return strdireccionip;
}
set
{
strdireccionip=value;
}
}
public string ContraseñaServDatos
{
get
{
return strcontraseñaServDatos;
}
set
{
strcontraseñaServDatos=value;
}
}
public string ContraseñaServidorWeb
{
get
{
return strcontraseñaSerWeb;
}
set
{
strcontraseñaSerWeb=value;
}
}
public string NombreBaseDatos
{
get
{
return strNombreBaseDatos;
}
set
{
strNombreBaseDatos=value;
}
}
public string UsuarioBaseDatos
{
get
{
return strUsuarioBaseDatos;
}
set
{
strUsuarioBaseDatos=value;
}
}
public Configuracion()
{
this.Leer();
}
public void Leer()
{
//Asignación de campos a variables
XmlNode nodo;
XmlDocum//Cargar variables en documento XML
ent doc=new XmlDocument();
doc.Load("ParametrosConfig.xml");
nodo=doc.DocumentElement;
foreach (XmlNode node1 in nodo.ChildNodes)
{
foreach (XmlNode node2 in node1.ChildNodes)
{
if(node1.Name=="instanciaSql")
{
if(node2.Name=="servidorDatos")
this.NombreServidorDatos=node2.InnerText;
if(node2.Name=="bd")
this.NombreBaseDatos=node2.InnerText;
if(node2.Name=="usr")
this.UsuarioBaseDatos=node2.InnerText;
if(node2.Name=="pwd")
this.ContraseñaServDatos=node2.InnerText;
}
if(node1.Name=="datosServidorWeb")
{
if(node2.Name=="servidorWeb")
this.NombreServidorWeb=node2.InnerText;
if(node2.Name=="dominio")
this.Dominio=node2.InnerText;
if(node2.Name=="ip")
this.DireccionIp=node2.InnerText;
}
}
}
}
}
este codigo va cargando el valor de los nodos en propiedades de una clase, suponiendo q conozco como se llaman los niveles del xml, en el caso de q no los conozcas te los recorres.
para escribir en un xml ultiliza xmlwriter
public class Configuracion
{
private string strNombreServidorWeb;
private string strNombreServidorDatos;
private string strDominio;
private string strdireccionip;
private string strcontraseñaServDatos;
private string strcontraseñaSerWeb;
private string strNombreBaseDatos;
private string strUsuarioBaseDatos;
public string NombreServidorWeb
{
get
{
return strNombreServidorWeb;
}
set
{
strNombreServidorWeb=value;
}
}
public string NombreServidorDatos
{
get
{
return strNombreServidorDatos;
}
set
{
strNombreServidorDatos=value;
}
}
public string Dominio
{
get
{
return strDominio;
}
set
{
strDominio=value;
}
}
public string DireccionIp
{
get
{
return strdireccionip;
}
set
{
strdireccionip=value;
}
}
public string ContraseñaServDatos
{
get
{
return strcontraseñaServDatos;
}
set
{
strcontraseñaServDatos=value;
}
}
public string ContraseñaServidorWeb
{
get
{
return strcontraseñaSerWeb;
}
set
{
strcontraseñaSerWeb=value;
}
}
public string NombreBaseDatos
{
get
{
return strNombreBaseDatos;
}
set
{
strNombreBaseDatos=value;
}
}
public string UsuarioBaseDatos
{
get
{
return strUsuarioBaseDatos;
}
set
{
strUsuarioBaseDatos=value;
}
}
public Configuracion()
{
this.Leer();
}
public void Leer()
{
//Asignación de campos a variables
XmlNode nodo;
XmlDocum//Cargar variables en documento XML
ent doc=new XmlDocument();
doc.Load("ParametrosConfig.xml");
nodo=doc.DocumentElement;
foreach (XmlNode node1 in nodo.ChildNodes)
{
foreach (XmlNode node2 in node1.ChildNodes)
{
if(node1.Name=="instanciaSql")
{
if(node2.Name=="servidorDatos")
this.NombreServidorDatos=node2.InnerText;
if(node2.Name=="bd")
this.NombreBaseDatos=node2.InnerText;
if(node2.Name=="usr")
this.UsuarioBaseDatos=node2.InnerText;
if(node2.Name=="pwd")
this.ContraseñaServDatos=node2.InnerText;
}
if(node1.Name=="datosServidorWeb")
{
if(node2.Name=="servidorWeb")
this.NombreServidorWeb=node2.InnerText;
if(node2.Name=="dominio")
this.Dominio=node2.InnerText;
if(node2.Name=="ip")
this.DireccionIp=node2.InnerText;
}
}
}
}
}
este codigo va cargando el valor de los nodos en propiedades de una clase, suponiendo q conozco como se llaman los niveles del xml, en el caso de q no los conozcas te los recorres.
para escribir en un xml ultiliza xmlwriter