Editar Arquivo Xml via C#

1 resposta Resolvido
.netxmlprogramaçãodesenvolvimentocsharp
D

Tenho o seguinte bloco de dados no meu arquivo xml

<?xml version="1.0" encoding="utf-8"?>
<DeployProject>
   <Deployable>
     <File>
     </File> 
   </DeployProject>
</Deployable>

Preciso inserir alguns outros blocos de dados dentro da tag File, exemplo preciso deixa-lo assim:

<?xml version="1.0" encoding="utf-8"?>
<DeployProject>
   <Deployable>
     <File>
        <_x007B>
           <AssemblyRegister valueType="3" value="1" />
           <AssemblyIsInGAC valueType="11" value="FALSE" />
           <ScatterAssemblies>
               <_9BBE>
                  <Name valueType="8" value="System.Net.Http.dll" />
                  <Attributes valueType="3" value="512" />
               </_9BBE>
            </ScatterAssemblies>
            <SourcePath valueType="8" value="System.Net.Http.dll" />
            <TargetName valueType="8" value="" />
        <_x007B>
     </File> 
   </DeployProject>
</Deployable

Quero saber como que adiciono tag dentro de tag.

Obrigado!

1 Resposta

D
Solucao aceita

há já achei a solução aqui, segue o código de exemplo:

XDocument doc = XDocument.Load("base.xml"); // Abre o Arquivo
 XElement ele = doc.Element("DeployProject").Element("Deployable").Element("File"); // busca a chave para adicionar novos itens
XElement newTag = new XElement("_x007B"); //criação do elemento mestre

XElement AssemblyRegister = new XElement("AssemblyRegister"); //criação do elemento interno
AssemblyRegister.SetAttributeValue("valueType", "3");
AssemblyRegister.SetAttributeValue("value", "1");

XElement AssemblyIsInGAC = new XElement("AssemblyIsInGAC"); //criação do elemento interno
AssemblyIsInGAC .SetAttributeValue("valueType", "11");
AssemblyIsInGAC .SetAttributeValue("value", "FALSE");

newTag.Add(MsmKey); // adiciona no elemento mestre
newTag.Add(OwnerKey); // adiciona no elemento mestre
newTag.Add(MsmSig); // adiciona no elemento mestre

ele.Add(newTag); // adiciona no elemento buscado

XElement elementTagMestre = new XElement("ScatterAssemblies"); //Cria nova tag dentro da principal
ele.Add(elementTagMestre);
doc.Save("base.xml"); //salva as alterações pode ser qualquer nome.

Depois só repetir os passos acima pra inserir os dados dentro da nova tag.

Criado 12 de abril de 2017
Ultima resposta 12 de abr. de 2017
Respostas 1
Participantes 1