Addenda de SANMINA

BUEN DIA  A TODOS SOY PROGRAMADOR Y ME TOPE CON PROBLEMITA SOBRE LAS ADDENDAS, EN ESTE CASO ES DE LA EMPRESA SANMINA DESPUES DE 2 DIAS DE INTENTAR CON LA CLASE SYSTEM.XML, LLEGUE A UNA FELIZ SOLUCION NO ES MUY ELEGANTE PERO SI EFECTIVA:
private string anterior1 = " xmlns=" + Convert.ToChar(34) + Convert.ToChar(34) + ">";
         private string AgregarAddenda(string elemento)
        {
           XmlDocument.Load(Archivo);
            XmlNode principal = doc.DocumentElement;
            Text = principal.Name;
            XmlElement xmlEle = doc.CreateElement(elemento);
            xmlEle.InnerText = string.Format(@"SANMINA:AP xsi:schemaLocation=""https://webapps2.sanmina-sci.com/partners-access https://webapps2.sanmina-sci.com/partners-access/addenda-sanmina.xsd"" PONumber=""{0}"" email=""[email protected]"" LegalEntityName=""SANMINA-SCI RSP DE MEXICO SA DE CV"" CustomerCode=""109564"" Currency=""MXN"" ExchangeRate=""0.00"" InternalInvoiceNumber=""{1}"" xmlns:SANMINA=""https://webapps2.sanmina-sci.com/partners-access"">", txtOC.Text, txtFactura.Text);
            principal.InsertBefore(xmlEle, doc.SelectSingleNode("/Comprobante"));


            doc.Save(@"C:nuevoarchivo.xml")
            return "C:nuevoarchivo.xml";
        }


ahora bien este metodo regresa un string con la ruta del nuevo archivo con la addenda, sin embargo la addenda no se agrega de forma correcta, ahora viene el truco, tomando en cuenta que un XML es en realidad un archivo de Texto  lo vamos a tratar como tal con el siguiente metodo:

 private void AddendaFinal(string ruta)
        {
            String strFile = File.ReadAllText(ruta);

            strFile = strFile.Replace(anterior1, "><");
            strFile = strFile.Replace(">", "/>");
            File.WriteAllText(ruta, strFile);
        }


si ponen atencion en la primera variable de tipo string , pues bien esa cadena es la que se genera  por que no estamos anexando de forma completa el Elemento, no se preocupen por que como dije vamos a tratarlo como un archivo de texto y reemplazar esos caracteres raros por los correctos.

los metodos se usan asi ya sea desde un evento click de un boton:

AddendaFinal(AgregarAddenda("Addenda"));  //listo el string "Addenda" es el Elemento principal.

espero que les sirva este truco y evitar todo hacer un monton de codigo.
Addenda de SANMINA
0 Puntos Score: 0/10
Visitas: 1401 Favoritos: 1
3 Comentarios Addenda de SANMINA
Trabajas en sanmina?
ojo!!!  en strFile = strFile.Replace(">", "/>"); el primero en realidad es &gt;  entre comillas dobles, salio > por que esta publicacion es HTML y reemplazo el codigo.
no, somos clientes de ellos, y me pidieron que agregara su addenda a mis facturas.
Para dejar un comentario Registrate! o.. eres ya usuario? Accede!