none
Como transformar um arquivo xmldocument em string para poder alterá-lo e depois convertê-lo novamente para xmldocument? RRS feed

  • Pergunta

  • Olá,
    Tenho um arquivo xmldocument.
    Quero pegar todo o arquivo e transforma-lo em uma string.

    Na forma de string possa alterá-lo conforme desejo.

    E após alterá-lo quero que o mesmo volte a ser xmldocument.

    Alguém ja fez isto anteriormente?

    Obrigado


    k2rto4-Pb - Analista SharePoint

    terça-feira, 17 de julho de 2012 19:40

Respostas

  • Olá,
    Consegui fazer aqui o que eu precisava.
    Segue solução:

    1) Crio uma string para armazenar o valor do XMLDocument

    string armazenaValorXML = "";

    2) Jogo na string criada o valor do XMLDocument

    armazenaValorXML = XmlDocument.InnerXml;

    3) Altero o que desejo na variável string que possui toda a estrutura xml do XMLDocument

    Aqui posso adicionar o que quiser.
    Posso adicionar novos nós, etc.

    4) Crio um novo XMLDocument a partir da minha variável string armazenaValorXML

    XmlDocument novoXML = new XmlDocument();
    novoXML.LoadXml(armazenaValorXML);


    Com isso consegui transformar um arquivo xmldocument em string para poder alterá-lo e, depois consegui convertê-lo novamente para xmldocument.

    Obrigado pelas respostas.

    Abraços


    k2rto4-Pb - Analista SharePoint



    • Marcado como Resposta TI DEV quinta-feira, 19 de julho de 2012 12:20
    • Editado TI DEV terça-feira, 24 de julho de 2012 12:13
    quinta-feira, 19 de julho de 2012 12:20

Todas as Respostas

  • O arquivo que voce quer manipular é do tipo xml ?

    Se sim segue um atrigo do Macoratti para manipular xml com o Linq to XML

    http://www.macoratti.net/09/02/lnq_xml1.htm

    Espero ter ajudado

    []'s

    terça-feira, 17 de julho de 2012 20:08
  • Cara vc não precisa converter.

               XmlDocument doc = new XmlDocument();
    
                //caminho fisico xml, No caminho de sua preferencia.
                string caminho = @"C:\nomedoarquivo.xml";
    
                //carrega xml
                doc.Load(caminho);
    
                XmlNode no;
                //pega o no de acordo com o id
                no = doc.SelectSingleNode(String.Format("/empresa/funcionario[id={0}]", 10));
    
                //alterar texto.
                no.SelectSingleNode("./cargo").InnerText = "Mudar o cargo!";
    
                //salva as informações já alteradas.
                doc.Save(caminho);

    Att;

    quarta-feira, 18 de julho de 2012 18:59
  • Olá,

    No meu arquivo xml tenho 1 ChildNode.

    Preciso então adicionar mais 3 ChildNode.

    Se eu pegasse o arquivo xml e o transformar em string posso concatenar com os outros childNodes que desejo.

    O negócio depois é transformá-lo novamente em xml.

    OBS: Os 3 ChildNodes devem ficar nas 3 primeiras posições.

    Exemplo do meu caso:

    Atual:

    <MeuDados>

    Como tem que ficar:

    <?xml version="1.0"?>

    <Segundo Item>

    <TerceiroItem>

    <MeuDados>

    Abs


    k2rto4-Pb - Analista SharePoint


    • Editado TI DEV quarta-feira, 18 de julho de 2012 19:53
    quarta-feira, 18 de julho de 2012 19:52
  • Cara vc esta confundindo manipulação de string com xml!

    Isso seria uma má pratica, se vc precisa manipular a xml é preciso percorrer os nós e adicionar elementos para depois salvar o mesmo documento xml.

    Uma dica, da uma olhada em como manipular xml.

    Veja um exemplo.

    att;

    quarta-feira, 18 de julho de 2012 22:23
  • Olá,
    Consegui fazer aqui o que eu precisava.
    Segue solução:

    1) Crio uma string para armazenar o valor do XMLDocument

    string armazenaValorXML = "";

    2) Jogo na string criada o valor do XMLDocument

    armazenaValorXML = XmlDocument.InnerXml;

    3) Altero o que desejo na variável string que possui toda a estrutura xml do XMLDocument

    Aqui posso adicionar o que quiser.
    Posso adicionar novos nós, etc.

    4) Crio um novo XMLDocument a partir da minha variável string armazenaValorXML

    XmlDocument novoXML = new XmlDocument();
    novoXML.LoadXml(armazenaValorXML);


    Com isso consegui transformar um arquivo xmldocument em string para poder alterá-lo e, depois consegui convertê-lo novamente para xmldocument.

    Obrigado pelas respostas.

    Abraços


    k2rto4-Pb - Analista SharePoint



    • Marcado como Resposta TI DEV quinta-feira, 19 de julho de 2012 12:20
    • Editado TI DEV terça-feira, 24 de julho de 2012 12:13
    quinta-feira, 19 de julho de 2012 12:20