2014-05-20 2 views
0

내 XML은 다음과 같습니다wpf 및 C#을 사용하여 기존 XML 노드에 새 속성을 추가하는 방법은 무엇입니까? 나는 기존의 XML 노드에 새 속성을 추가하기 위해 노력하고있어

내 XML은 다음과 같다 원하는
<Atletas> 
<Atleta Id="0" Nombre="TextBox4" Genero="Masculino" Edad="TextBox" /> 
<Atleta Id="1" Nombre="TextBox345" Genero="Masculino" Edad="TextBox" /> 
<Atleta Id="2" Nombre="Daniel1" Genero="Masculino" Edad="TextBox" /> 
<Atleta Id="3" Nombre="TextBox4" Genero="Masculino" Edad="TextBox" /> 
<Atleta Id="4" Nombre="Daniel2" Genero="Masculino" Edad="23" /> 
<Atleta Id="5" Nombre="Juan" Genero="Masculino" Edad="25" /> 
</Atletas> 

: 어떻게 LINQ 수 있습니다 사용

<Atletas> 
<Atleta Id="0" Nombre="Daniel" Genero="Masculino" Edad="25" Peso="89" /> 
<Atleta Id="1" Nombre="John" Genero="Masculino" Edad="22" /> 
<Atleta Id="2" Nombre="Tom" Genero="Masculino" Edad="21" Peso="78"/> 
<Atleta Id="3" Nombre="Kerry" Genero="Masculino" Edad="18" /> 
<Atleta Id="4" Nombre="Peter" Genero="Masculino" Edad="23" Peso="76" /> 
<Atleta Id="5" Nombre="Juan" Genero="Masculino" Edad="25" /> 
</Atletas> 

Id를 식별자로 사용하여 선택된 노드에 새로운 속성을 추가하기 위해 쿼리를 작성합니까?

답변

2

사용 XElement.Add 방법은 요소 (속성 등) 내용을 추가합니다 :

var xdoc = XDocument.Load(path_to_xml); 

var atleta = xdoc.Root.Elements("Atleta") 
       .FirstOrDefault(a => (int)a.Attribute("Id") == 3); 

atleta.SetAttributeValue("Edad", 21); 
atleta.Add(new XAttribute("Peso", 78)); 
xdoc.Save(path_to_xml); 

을 모양을 3에 속성과 동일한 Id이 코드 Atleta 요소를 실행 한 후 :

<Atleta Id="3" Nombre="TextBox4" Genero="Masculino" Edad="21" Peso="78"/> 

제안 읽기 : Programming Guide (LINQ to XML). 위의 코드 또는 완료해야하는 다른 작업에 대한 질문이 있으면이 안내서를 읽으십시오.

+1

고맙습니다. 작동합니다! – user3650845

관련 문제