2010-01-25 18 views
8

मेरे एक्सएमएल:लिंकक का उपयोग करके मैं XML में तत्व कैसे डालूं?

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

कैसे:

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

मैं की तरह कुछ के साथ समाप्त करने के लिए एक और तत्व सम्मिलित करना चाहते हैं:

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

मैं इस एक्सएमएल के लिए इसी तरह का उपयोग कर भरी हुई है क्या मैं Linq2Xml का उपयोग कर ऐसा करता हूं?

उत्तर

21

इस प्रयास करें:

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

या, आप XPath की तरह की तरह मुझे क्या करना है, तो:

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

बहुत खूब! धन्यवाद :) मेरा एकमात्र प्रश्न अब XPathSelectElement कहां है? मुझे लगता है कि मैं किसी भी नामस्थान में इसका उपयोग नहीं कर रहा हूं। (मैं System.Linq और System.Xml.Linq का उपयोग कर रहा हूं) –

+4

'System.Xml.XPath' –

संबंधित मुद्दे