2014-05-20 56 views
0

我想一個新的屬性添加到現有的XML節點,我的XML看起來是這樣的:如何使用wpf和c#將新屬性添加到現有的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> 

我想我的XML看起來是這樣的:

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

使用LINQ,怎麼能我寫了一個查詢,以添加一個新的屬性到選定的節點,使用它的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); 

與屬性Id等於執行此代碼Atleta元件3將看起來像後:

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

推薦閱讀: Programming Guide (LINQ to XML)。如果您有任何問題需要上述代碼或您需要完成的其他任務,請閱讀本指南。

+1

謝謝,它的工作原理! – user3650845

相關問題