Usuário com melhor resposta
Como transformar um arquivo xmldocument em string para poder alterá-lo e depois convertê-lo novamente para xmldocument?

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
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
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
-
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;
-
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
-
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.
-
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