Manipulação de XML

04/03/2010

0

olá pessoal,
minha duvida é o seguinte:
tenho que carregar um arquivo xml assim:
<?xml version="1.0" encoding="UTF-8"?>
<dados_envio_coleta xmlns="http://www.xxx.com/DadosEnvioColeta.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema" xsi:schemaLocation="http://www.xxx.com/DadosEnvioColeta.xsd">
  <dados_chamado>
    <numero>00000001</numero>
    <data_abertura>2001-12-17T09:30:47.0Z</data_abertura>
  </dados_chamado>
</dados_envio_coleta>
preciso criar um novo xml sem os atributos: xmlns, xmlns:xsi, xsi:schemaLocation, ou seja, o elemento: dados_envio_coleta deve estar sem atributo nenhum

o novo xml deve ficar assim:
<?xml version="1.0" encoding="UTF-8"?>
<dados_envio_coleta>
  <dados_chamado>
    <numero>00000001</numero>
    <data_abertura>2001-12-17T09:30:47.0Z</data_abertura>
  </dados_chamado>
</dados_envio_coleta>
como posso criar uma rotina pra fazer isso???

Fabiano Góes

Fabiano Góes

Responder

Posts

05/03/2010

Marcio Silveira

Na verdade, pelo que entendi, é melhor você fazer um programa para abrir o arquivo xml e ler ele linha a linha para criar o seu novo arquivo, tipo assim:

            try
            {
                //Criar o leitor do Stream, não se esqueça de importar o System.IO (using System.IO;)
                StreamReader reader = new StreamReader(nomeArquivo); // Deve conter o caminho completo
                // Criar o "escritor"
                StreamWriter writer = new StreamWriter(nomeArquivoSaida);
                string linha = "";



                // Faça um laço para ler até que este encontre o final do arquivo.
                while (!reader.EndOfStream)
                {
                    // Neste exemplo optei por ler uma linha por vez
                    linha = reader.ReadLine();
                    // Mas você pode ler :
                    // reader.ReadBlock() - Ler o arquivo inteiro de uma vez se sempre estiver procurando a mesma coisa
                    // isso resolvez
                    // entre outros tipos de leitura.

                    if (linha.Contains("texto"))
                        linha = "outro texto"

                    writer.WriteLine(linha);
 
                }

                // Não se esqueça de fechar leitor/escritor (caso contrário o arquivo continuará aberto na memória).
                reader.Close();
                writer.Close();
            }
            catch (Exception erro)
            {
                MessageBox.Show(erro.Message);               
            }

Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar