2010-01-25 18 views
8

Benim XML:Linq kullanarak XML'ye nasıl bir eleman eklerim?

<content> 
    <item id="1">A</item> 
    <item id="2">B</item> 
    <item id="3">C</item> 
    <item id="4">D</item> 
</content> 

Nasıl:

XDocument xDoc = new XDocument(data.Value); 
var items = from i in xDoc.Element("content").Elements("item") 
    select i; 

Ben böyle bir şey ile sonuna kadar, başka bir öğe eklemek istiyorum: Ben benzer bu kullanarak XML yükleyen

<content> 
    <item id="1">A</item> 
    <item id="2">B</item> 
    <item id="4">D</item> 
</content> 

bunu Linq2Xml kullanarak yapabilir miyim? XPath gibi benim gibi eğer

xDoc.Element("content") 
    .Elements("item") 
    .Where(item => item.Attribute("id").Value == "2").FirstOrDefault() 
    .AddAfterSelf(new XElement("item", "C", new XAttribute("id", "3"))); 

Veya:

cevap

21

bu deneyin

xDoc.XPathSelectElement("content/item[@id = '2']") 
    .AddAfterSelf(new XElement("item", "C", new XAttribute("id", "3"))); 
+1

Harika! Teşekkür ederim :) Tek sorum şu, XPathSelectElement nerede? Kullandığım ad alanlarının hiçbirinde bulamıyorum. (System.Linq ve System.Xml.Linq kullanıyorum) –

+4

'System.Xml.XPath' –

İlgili konular