none
Alterar um Arquivo XML RRS feed

  • Pergunta

  • Pessoal,

    Estou tentando manipular um arquivo XML para alterar um valor.

    O arquivo possui a seguinte estrutura:

    <Application>
      <Settings>
        <Setting Name="ActiveSync" Value="Data Source=ppp_peer\SQLEXPRESS,1433;initial catalog=terminal_rox;user id=XXXX;password=XXXX;" />
        <Setting Name="GPRS_3G" Value="Data Source=189.59.XXX.XXX\ROX;initial catalog=terminal_rox-IOS;user id=XXXX;password=XXXX;" />
        <Setting Name="Wireless" Value="Data Source=10.13.XX.XXX\ROX;initial catalog=terminal_rox-IOS;user id=XXXX;password=XXXX;" />
        <Setting Name="Connection" Value="2"/>
      </Settings>
    </Application>

    Preciso alterar o valor do Attributo Connection, já tentei utilizar a classe XDocument e não obtive sucesso, alguem pode me indicar um caminho.

    Já realizei diversas buscas na internet, só que a formatação dos xml encotrados para exemplo são diferentes.

    Modelos encontrados na Internet:

    <Connection>2</Connection>

    Meu arquivo:

    <Setting Name="Connection" Value="2"/>

    Atentamente,

    Danilo Silva


    Danilo FS

    quinta-feira, 21 de fevereiro de 2013 13:36

Respostas

  • Vitor Obrigado,

    Consegui resolver da seguinte forma.

       var query = from c in xmlFile.Element("Application").Elements("Settings").Elements("Setting") select c;
                        

                        foreach (XElement book in query)
                        {
                            if (book.FirstAttribute.Value == Key)
                            {
                                book.LastAttribute.Value = Value;
                            }                       
                        }
                       
                        xmlFile.Save(fileName,SaveOptions.None);

    Muito,

    Danilo Silva


    Danilo FS

    • Marcado como Resposta Danilo.Fsy segunda-feira, 25 de fevereiro de 2013 17:27
    segunda-feira, 25 de fevereiro de 2013 15:41

Todas as Respostas

  • Danilo,

    Sem o código de referencia que você tentou utilizar fica meio difícil de tentar ajudar :D

    Segue abaixo um exemplo, de como alterar e salvar:

    //XDocument xDoc = XDocument.Load("CAMINHO DO XML DE LEITURA");
    XDocument xDoc = XDocument.Parse(
        @"<Application>
            <Settings>
                <Setting Name='ActiveSync' Value='Data Source=ppp_peer\SQLEXPRESS,1433;initial catalog=terminal_rox;user id=XXXX;password=XXXX;' />
                <Setting Name='GPRS_3G' Value='Data Source=189.59.XXX.XXX\ROX;initial catalog=terminal_rox-IOS;user id=XXXX;password=XXXX;' />
                <Setting Name='Wireless' Value='Data Source=10.13.XX.XXX\ROX;initial catalog=terminal_rox-IOS;user id=XXXX;password=XXXX;' />
                <Setting Name='Connection' Value='2'/>
            </Settings>
        </Application>");
    
    var result = xDoc.Descendants("Setting").Where(f => f.Attribute("Name").Value == "Connection").FirstOrDefault();
    
    if (result != null)
    {
        result.Attribute("Value").Value = "MINHA CONEXAO EXEMPLO";
    }
    
    var xmlModificado = xDoc.ToString();
    //xDoc.Save("CAMINHO DO XML DE LEITURA");


    Vitor Mendes | Seu feedback é muito importante para todos!
    Visite o meu site: http://www.vitormendes.com.br/

    • Sugerido como Resposta Afonso Fernandes quinta-feira, 21 de fevereiro de 2013 16:01
    quinta-feira, 21 de fevereiro de 2013 14:39
  • Vitor Obrigado,

    Consegui resolver da seguinte forma.

       var query = from c in xmlFile.Element("Application").Elements("Settings").Elements("Setting") select c;
                        

                        foreach (XElement book in query)
                        {
                            if (book.FirstAttribute.Value == Key)
                            {
                                book.LastAttribute.Value = Value;
                            }                       
                        }
                       
                        xmlFile.Save(fileName,SaveOptions.None);

    Muito,

    Danilo Silva


    Danilo FS

    • Marcado como Resposta Danilo.Fsy segunda-feira, 25 de fevereiro de 2013 17:27
    segunda-feira, 25 de fevereiro de 2013 15:41