none
Agregar Elemento a un nodo XML RRS feed

  • Pregunta

  • Hola,

    Necesito agregar el siguiente campo a varios XML <Item name="TIPO_CUENTA" type="string">07</Item>, lo tengo que insertar justo despues de <Item name="ID_CANAL" type="string">0222</Item>.

    Estuve armando el siguiente código para probarlo en un solo archivo pero le estoy errando en algo y no puedo seguir, alguien me podría ayudar?

    Este es el codigo

    public static void Edicion()
            {
                XmlDocument doc = new XmlDocument();
                doc.Load("Ruta del documento");

                XmlNode root = doc.DocumentElement;
                       XmlElement elem = doc.CreateElement("Tipo_Cuenta");
                elem.InnerText = "07";

                root.InsertAfter(elem, doc.SelectNodes("Metadatos").Item(18));

                Console.WriteLine("Display the modified XML...");
                doc.Save(Console.Out);

            }

    Este es el formato del XML

    <?xml version="1.0" encoding="utf-8"?>
    <root xmlns="http://tempuri.org/EntradaScanning_SDD.xsd">
    <TipoDocumento>Cuenta</TipoDocumento>
    <cliente>ARG_CUENTA</cliente>
    <Ruta MIMEType="image/tiff">Ruta de la imagen</Ruta>
    <Operation>INSERT</Operation>
    <CheckSubscription>1</CheckSubscription>
    <Metadatos>
    <Item name="GN_ID" type="string">KFXcf53797ce4f7b87a4d45ce2d03687</Item>
    <Item name="GN_NAME" type="string">FIRMA_CUENTA</Item>
    <Item name="GN_CREATIONDATE" type="date">FECHA</Item>
    <Item name="GN_TITULO" type="string">FIRMA_CUENTA</Item>
    <Item name="GN_DATE" type="date">FECHA</Item>
    <Item name="GN_DOC_ORIG" type="string">N</Item>
    <Item name="GN_CADUCITYDATE" type="date">9999-12-31</Item>
    <Item name="GN_VALIDITYDATE" type="date">9999-12-31</Item>
    <Item name="USUARIO" type="string">a294513</Item>
    <Item name="FECHA_DIG" type="timestamp">2017-10-12T14:07:44-03:00</Item>
    <Item name="OFICINA" type="string">222</Item>
    <Item name="BOLSIN" type="string">99999</Item>
    <Item name="TIPO_ID_CLIENTE" type="string">P</Item>
    <Item name="DESC_TIPOIDENTIF" type="string">PASAPORTE</Item>
    <Item name="ID_CLIENTE" type="string">62830491</Item>
    <Item name="CAT_CLIENTE" type="string">TI</Item>
    <Item name="DESC_CAT_CLI" type="string">Titular</Item>
    <Item name="ID_CANAL" type="string">0222</Item>
    <Item name="NUM_CTA" type="string">3631579</Item>
    <Item name="ACTUALIZA_F" type="string">1</Item>
    <Item name="TIPO" type="string">P</Item>
    <Item name="NUMERO" type="string">62830491</Item>
    <Item name="COD_VALIDACION" type="string">0</Item>
    </Metadatos>
    </root>

    miércoles, 25 de octubre de 2017 18:43

Respuestas

Todas las respuestas


    • Propuesto como respuesta Juan MondragónModerator jueves, 26 de octubre de 2017 21:09
    • Editado walter_5 jueves, 26 de octubre de 2017 21:21
    • Marcado como respuesta 20Daniel viernes, 27 de octubre de 2017 19:52
    • Desmarcado como respuesta 20Daniel viernes, 27 de octubre de 2017 20:32
    • Marcado como respuesta 20Daniel viernes, 27 de octubre de 2017 20:32
    jueves, 26 de octubre de 2017 0:03

  • Me parece que sin querer borre el codigo, lo vuelvo a copiar por si a alguien mas le sirve como a mi.... Gracias, por la ayuda

    public static void Edicion()
            {
                XNamespace ns = "http://tempuri.org/EntradaScanning_SDD.xsd";
                XElement doc = XElement.Load("C:/Users/B047068/Desktop/Prueba/PruebaXml.xml");

                //Crea el item
                XElement nuevo = new XElement(ns + "Item", new XAttribute("name", "TIPO_CUENTA"), new XAttribute("type", "string"), "07");

                //Busca el item
                XElement canal = doc.Descendants(ns + "Metadatos").Elements(ns + "Item").Where(e => e.Attribute("name").Value == "ID_CANAL").First();

                canal.AddAfterSelf(nuevo);
                doc.Save("C:/Users/B047068/Desktop/Prueba/PruebaXml1.xml");

     
    viernes, 27 de octubre de 2017 20:44