Crear XML en MemoryStream con XmlWriter

XML

Crea una secuencia cuyo almacén de respaldo es la memoria.

Curso SharePoint Online

SharePoint1

 

Curso de SharePoint 2007
http://www.desarrollaconmsdn.com/msdn/CursosOnline/Curso_SharePoint_2007/index.html

Lee string que contiene XML y poner en DataSet

XMLEste método lee un string con código XML y lo pone en un StringReader para posteriormente ese StringReader ponerlo en un DataSet.

Se crean DataTables basándose en cada nodo del XML

public DataSet SetStringReaderStringXML(string xmlString)
{
DataSet dsXml = new DataSet();

try
{
StringReader stringReader = new StringReader(xmlString))
dsXml.ReadXml(stringReader);

return dsXml;
}
catch (Exception ex)
{ throw ex; }
}

Recorrer string que contiene XML y poner en DataTable

XMLEste método recorre un String que contiene código XML y pone los Elements en un DataTable

public DataTable SetDataTabletStringXML(string xmlString)
{
DataTable dt = new DataTable();
DataTable dtXml = dt;
DataRow drXml = dt.NewRow();
dtXml.Rows.InsertAt(drXml, 0);

try
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(xmlString);

foreach (XmlNode xmlNode in xmlDoc.DocumentElement.ChildNodes)
{
dtXml.Columns.Add(xmlNode.Name, typeof(string));
dtXml.Columns[xmlNode.Name].Table.Rows[0][xmlNode.Name] = xmlNode.InnerText;
}
return dtXml;
}
catch (Exception ex)
{ throw ex; }
}

Recorrer string que contiene XML

XMLRecorremos cada uno de los nodos y sus elementos del XML que contiene el string.

 public void ReadXML(string xmlString)
{
      // Este valor se recibe como parametro.
xmlString = @”<?xml version=’1.0′ encoding=’UTF-8′ standalone=’yes’?><NODOUNO><ElemUno>REF0003</ElemUno><ElemDos>denied</ElemDos><ElemTres>000046442</ElemTres</ NODOUNO >”;       

     try
    {
        XmlDocument xmlDoc = new XmlDocument();
        xmlDoc.LoadXml(xmlString);

        string valor = “”;
        string nombre = “”;

        foreach (XmlNode xmlNode in xmlDoc.DocumentElement.ChildNodes)
        {
            nombre = xmlNode.Name;
            valor = xmlNode.InnerText;
        }           
    }
    catch (Exception ex)
    { throw ex; }
}

Crear XML en FileStream con XmlTextWriter

XMLEsta es una de tantas maneras de crear un archivo con código XML. 

public string XML(string PathNameFile)
{
    try
    {
// Este valor lo recibe como parametro 
PathNameFile = @”c:\myXML.xml” 

        FileStream oFile = new FileStream(PathNameFile, FileMode.Create);

        // Establezco el archivo y la codificación al objeto XmlTextWriter
        XmlTextWriter oXML = new XmlTextWriter(oFile, Encoding.UTF8);      

        //Elige una de estas dos opciones
        // ———————————————————————–
        //OPCION 1
        // Pone texto en una sola liena
        // Le indico que NO se cree con sangría los nodos del xml..
        oXML.Formatting = Formatting.None;

        //OPCION 2
        // Pone texto estructurado
        // Le indico que SI  se cree con sangría los nodos del xml..
        oXML.Formatting = Formatting.Indented;
        // ——————————————————————- 

        oXML.WriteProcessingInstruction(“xml”, “version=\”1.0\” encoding=\”utf-8\””);
        oXML.WriteStartElement(“myNodoPrincipal”);
        oXML.WriteStartElement(“myNodoDatos”); //myNodoDatos
            // Inserto etiquetas que no son necesario cerrar.
            oXML.WriteElementString(“Nombre”, “Pancho”);
            oXML.WriteElementString(“Apellido”, “Villa”);
        oXML.WriteEndElement(); // myNodoDatos.
        oXML.WriteStartElement(“myNodoDireccion “); // Abro myNodoDireccion.
          // Inserto etiquetas que no son necesario cerrar.
          oXML.WriteElementString(“Direccion”, “Centro”);
          oXML.WriteElementString(“Numero”, “258”);
              oXML.WriteStartElement(“myNodoEducacion”);//Abro myNodoEducacion.
                  oXML.WriteElementString(“Escuela”, “La Mejor”);
                  oXML.WriteElementString(“Carrera”, “General”);
              oXML.WriteEndElement(); // myNodoEducacion
          oXML.WriteEndElement(); // myNodoDireccion.
        oXML.WriteEndElement(); // myNodoPrincipal. 

        oXML.Flush();
        oFile.Close();

         //Elige una de estas dos opciones
        // ————————————————————
        //OPCION 1
        //Regresa un string con los datos del XML
        StreamReader streamReader = new StreamReader(PathNameFile);
        string text = streamReader.ReadToEnd();

        return text;     

        //OPCION 2
        //Regresara el path donde se guardo el archivo
         return PathNameFile;
        // ————————————————————
    }
    catch (Exception ex)
    { throw ex; }
}

Lee File.xml y lo pone en DataSet

XMLPoner los datos de un archivo .xml en un DataSet, esto creara un DataTable por cada nodo del xml.

 

public DataSet SetDataSetPathXml(string xmlPathFile)
{
    DataSet dsXML = new DataSet();

    try
    {
        dsXML.ReadXml(xmlPathFile);

        return dsXML;
    }
    catch (Exception ex)
    {
        throw ex;
    }
}