none
XML problemas al cerrar un tag ejemplo Cerrar <tag></tag> RRS feed

  • Pregunta

  • Hola amigos tengo una duda estoy creando un XML con la siguiente estructura cuando el dato este vacío   termine la etiqueta ejemplo "Nota"

    <?xml version="1.0" encoding="utf-8"?>
    <info:pol xmlns:conocuica="http://192.168.1.100:9091/Piloto">
      <Datos Introduccion="Documento XML pruebas" Desarrollado="Independiente" Contacto="Carlos Onocuica">
        <Nombre>Juan Perez</Nombre>
        <Ano>5</Ano>
        <Seccion>C</Seccion>
        <Nota></Nota>
      </Datos>
    </info:pol>

    Estoy usando el siguiente código 

         public void XmlNota(String Nombre, String Ano, String Seccion, String Nota)
            {
                string nombrefile = ConfigurationManager.AppSettings["RutaXML"] + "\\" + DateTime.Now.ToString("ddMMyyyyHHmmss") + ".xml";
    
                XmlTextWriter writer;
    
                writer = new XmlTextWriter(nombrefile, Encoding.UTF8);
                writer.Formatting = Formatting.Indented;
    
                writer.WriteStartDocument();
    
                //New
                writer.WriteStartElement("info:pol");
                writer.WriteAttributeString("xmlns:conocuica", "http://192.168.1.100:9091/Piloto");
                writer.Flush();
    
                //Esto
                writer.WriteStartElement("Datos");
                writer.WriteAttributeString("Introduccion", "Documento XML pruebas");
                writer.WriteAttributeString("Desarrollado", "Independiente");
                writer.WriteAttributeString("Contacto", "Carlos Onocuica");
                writer.Flush();
    
                writer.WriteStartElement("Nombre");
                writer.WriteString(Nombre);
                writer.WriteEndElement(); // Fin Nombre
                writer.Flush();
    
                writer.WriteStartElement("Ano");
                writer.WriteString(Ano);
                writer.WriteEndElement(); // Fin Ano
    
                writer.WriteStartElement("Seccion");
                writer.WriteString(Seccion);
                writer.WriteEndElement(); // Fin Seccion
    
                writer.WriteStartElement("Nota");
                writer.WriteString(Nota);
                writer.WriteEndElement(); // Fin Nota
    
                writer.WriteEndElement(); // Fin Datos
                writer.WriteEndElement(); // Fin info
                writer.Flush();
                writer.Close();
    
            }


    Pero me genera la siguiente estructura

    <?xml version="1.0" encoding="utf-8"?>
    <info:pol xmlns:conocuica="http://192.168.1.100:9091/Piloto">
      <Datos Introduccion="Documento XML pruebas" Desarrollado="Independiente" Contacto="Carlos Onocuica">
        <Nombre>Juan Perez</Nombre>
        <Ano>5</Ano>
        <Seccion>C</Seccion>
        <Nota />
      </Datos>
    </info:pol>


    Entonces modifique mi código buscando el Google un poco 

      public void XmlNotaFinForzado(String Nombre, String Ano, String Seccion, String Nota)
            {
                string nombrefile = ConfigurationManager.AppSettings["RutaXML"] + "\\" + DateTime.Now.ToString("ddMMyyyyHHmmss") + ".xml";
    
                XmlTextWriter writer;
    
                writer = new XmlTextWriter(nombrefile, Encoding.UTF8);
                writer.Formatting = Formatting.Indented;
    
                writer.WriteStartDocument();
    
                //New
                writer.WriteStartElement("info:pol");
                writer.WriteAttributeString("xmlns:conocuica", "http://192.168.1.100:9091/Piloto");
                writer.Flush();
    
                //Esto
                writer.WriteStartElement("Datos");
                writer.WriteAttributeString("Introduccion", "Documento XML pruebas");
                writer.WriteAttributeString("Desarrollado", "Independiente");
                writer.WriteAttributeString("Contacto", "Carlos Onocuica");
                writer.Flush();
    
                writer.WriteStartElement("Nombre");
                writer.WriteString(Nombre);
                writer.WriteFullEndElement(); // Fin Nombre
                writer.Flush();
    
                writer.WriteStartElement("Ano");
                writer.WriteString(Ano);
                writer.WriteFullEndElement(); // Fin Ano
    
                writer.WriteStartElement("Seccion");
                writer.WriteString(Seccion);
                writer.WriteFullEndElement(); // Fin Seccion
    
                writer.WriteStartElement("Nota");
                writer.WriteString(Nota);
                writer.WriteFullEndElement(); // Fin Nota
    
                writer.WriteEndElement(); // Fin Datos
                writer.WriteEndElement(); // Fin info
                writer.Flush();
                writer.Close();
    
            }


    Pero me genera el XML con esta estructura la cual está con enter y espacios la "Nota".

    Como puedo hacer para obtener lo que necesito, alguien le paso esto? 

    <?xml version="1.0" encoding="utf-8"?>
    <info:pol xmlns:conocuica="http://192.168.1.100:9091/Piloto">
      <Datos Introduccion="Documento XML pruebas" Desarrollado="Independiente" Contacto="Carlos Onocuica">
        <Nombre>Juan Perez</Nombre>
        <Ano>5</Ano>
        <Seccion>C</Seccion>
        <Nota>
        </Nota>
      </Datos>
    </info:pol>

    Gracias,

    Onocuica.


    Conocuica



    • Editado conocuica jueves, 8 de agosto de 2019 14:37
    jueves, 8 de agosto de 2019 14:34