Usuário com melhor resposta
Como adicionar ChildNodes em um arquivo xmldocument?

Pergunta
-
Olá,
Meu arquivo xmldocument só possui 1 ChildNodes.Preciso então adicionar mais 3 ChildNodes nele.
Estes novos ChildNodes devem ficar nas 3 primeiras posições do xml.Alguém sabe como posso fazê-lo?
Obrigado
k2rto4-Pb - Analista SharePoint
Respostas
-
Olá Romy Moura,
Só para lembrar o que preciso fazer:
Tenho meu arquivo XML:
<empresa>
<funcionario>
<id>10 </id>
<nome>Frederico da Silva </nome>
<idade>25 </idade>
<cargo>Gerente Administrativo</cargo>
</funcionario>
</empresa>O que preciso fazer é adicionar novos ChildNodes nele.
Segue exemplo:ChildNode 01
<?xml version="1.0"?>
ChildNode 02
<arq-infoArq-file-attachment-arquivo>
Com isso meu xml precisa ficar assim:
<?xml version="1.0"?>
<arq-infoArq-file-attachment-arquivo>
<empresa>
<funcionario>
<id>10 </id>
<nome>Frederico da Silva </nome>
<idade>25 </idade>
<cargo>Gerente Administrativo</cargo>
</funcionario>
</empresa>
Para fazer isso temos duas soluções.
Seguem as mesmas:1) Transforma o arquivo XmlDocument (XML) em string e então adicionar as linhas (childNodes) que faltam na mão.
Isso pode ser visto neste post http://social.msdn.microsoft.com/Forums/pt-BR/504/thread/8828061f-1ecf-4d2d-a43b-1c7114d68ca2.2) Criar um novo XmlDocument e, primeiramente, adicionar os dois primeiros childNodes nele.
Em seguida carregar o XmlDocument que possui o childNode que desejamos.
Para isso faça:XmlDocument xmlCarregado = new XmlDocument();
xmlCarregado.Load(@"C:\nomedoarquivo.xml");Após importá-lo basta criar um novo XmlNode para receber este chldNode do XmlDocument carregado.
Para isso faça:XmlNode nodeCopia = xmlDocumentCriadoAnteriormente.ImportNode(xmlCarregado.ChildNodes[NúmeroDoChildNodeDesejado], true);
Agora basta adicionar este childNode clonado no xmlDocumentCriadoAnteriormente.
Para isso faça:xmlDocumentCriadoAnteriormente.AppendChild(nodeCopia);
Obrigado pelas respostas.
Abraços
k2rto4-Pb - Analista SharePoint
Todas as Respostas
-
-
-
Cara salva o conteudo abaixo .xml.
No caminho de sua preferencia.
<empresa> <funcionario> <id>10 </id> <nome>Frederico da Silva </nome> <idade>25 </idade> <cargo>Gerente Administrativo</cargo> </funcionario> </empresa>
Criar rotina de manipulação.
void ManipularXml() { XmlDocument doc = new XmlDocument(); //caminho fisico xml, No caminho de sua preferencia. string caminho = @"C:\nomedoarquivo.xml"; //carrega xml doc.Load(caminho); //criar funcionario. XmlNode linha = doc.CreateElement("funcionario"); XmlNode Id = doc.CreateElement("id"); XmlNode Nome = doc.CreateElement("nome"); XmlNode Idade = doc.CreateElement("idade"); XmlNode Cargo = doc.CreateElement("cargo"); Id.InnerText = "01"; Nome.InnerText = "Romy Moura"; Idade.InnerText = "26"; Cargo.InnerText = "Analista Programador"; linha.AppendChild(Id); linha.AppendChild(Nome); linha.AppendChild(Idade); linha.AppendChild(Cargo); doc.SelectSingleNode("/empresa").AppendChild(linha); XmlNode no; no = doc.SelectSingleNode(String.Format("/empresa/funcionario[id={0}]", 10)); no.SelectSingleNode("./cargo").InnerText = "Gerente Administrativo"; doc.Save(caminho); }
Att;
- Sugerido como Resposta Olavo Oliveira NetoModerator quinta-feira, 19 de julho de 2012 11:12
-
Olá Romy Moura,
Só para lembrar o que preciso fazer:
Tenho meu arquivo XML:
<empresa>
<funcionario>
<id>10 </id>
<nome>Frederico da Silva </nome>
<idade>25 </idade>
<cargo>Gerente Administrativo</cargo>
</funcionario>
</empresa>O que preciso fazer é adicionar novos ChildNodes nele.
Segue exemplo:ChildNode 01
<?xml version="1.0"?>
ChildNode 02
<arq-infoArq-file-attachment-arquivo>
Com isso meu xml precisa ficar assim:
<?xml version="1.0"?>
<arq-infoArq-file-attachment-arquivo>
<empresa>
<funcionario>
<id>10 </id>
<nome>Frederico da Silva </nome>
<idade>25 </idade>
<cargo>Gerente Administrativo</cargo>
</funcionario>
</empresa>
Para fazer isso temos duas soluções.
Seguem as mesmas:1) Transforma o arquivo XmlDocument (XML) em string e então adicionar as linhas (childNodes) que faltam na mão.
Isso pode ser visto neste post http://social.msdn.microsoft.com/Forums/pt-BR/504/thread/8828061f-1ecf-4d2d-a43b-1c7114d68ca2.2) Criar um novo XmlDocument e, primeiramente, adicionar os dois primeiros childNodes nele.
Em seguida carregar o XmlDocument que possui o childNode que desejamos.
Para isso faça:XmlDocument xmlCarregado = new XmlDocument();
xmlCarregado.Load(@"C:\nomedoarquivo.xml");Após importá-lo basta criar um novo XmlNode para receber este chldNode do XmlDocument carregado.
Para isso faça:XmlNode nodeCopia = xmlDocumentCriadoAnteriormente.ImportNode(xmlCarregado.ChildNodes[NúmeroDoChildNodeDesejado], true);
Agora basta adicionar este childNode clonado no xmlDocumentCriadoAnteriormente.
Para isso faça:xmlDocumentCriadoAnteriormente.AppendChild(nodeCopia);
Obrigado pelas respostas.
Abraços
k2rto4-Pb - Analista SharePoint