2011-12-19 21 views
27

Yani bu varsayalım çalışma zamanında çocuk düğümleri ekleyin i elde etmek istediğinizi geçerli:XElement =>

<root> 
    <name>AAAA</name> 
    <last>BBBB</last> 
    <children> 
    <child> 
     <name>XXX</name> 
     <last>TTT</last> 
    </child> 
    <child> 
     <name>OOO</name> 
     <last>PPP</last> 
    </child> 
    </children> 
</root> 

emin değil XElement kullanarak basit yolu
ise ama bu yüzden ne var uzak:

XElement x = new XElement("root", 
        new XElement("name", "AAA"), 
        new XElement("last", "BBB")); 

Şimdi sahip olduğum bazı verilere dayanarak "alt öğeler" i eklemeliyim.

bu şekilde yapmak:

yüzden her çocuğa

foreach (Children c in family) 
{ 
    x.Add(new XElement("child", 
       new XElement("name", "XXX"), 
       new XElement("last", "TTT")); 
} 

SORUN almak için benim listesine sokmak yinelemek gerekiyor ... 1,2,3,4 var olabilir "ÇOCUK Veli düğümü" ni özleyeceğim. Sadece foreach önce eklerseniz, kapalı bir düğüm

<children/> 

olarak işlenen ve bu bizim istediğimiz DEĞİLDİR edilecektir.

SORU:

Ben 1 kısmına bir ana düğümü ve liste içerisinde olduğu kadar çok ekleyebilir nasıl?

cevap

29

bu deneyin:

var x = new XElement("root", 
      new XElement("name", "AAA"), 
      new XElement("last", "BBB"), 
      new XElement("children", 
       from c in family 
       select new XElement("child", 
          new XElement("name", "XXX"), 
          new XElement("last", "TTT") 
         ) 
      ) 
     ); 
6
var children = new XElement("children"); 
XElement x = new XElement("root", 
        new XElement("name", "AAA"), 
        new XElement("last", "BBB"), 
        children); 

foreach (Children c in family) 
{ 
    children.Add(new XElement("child", 
       new XElement("name", "XXX"), 
       new XElement("last", "TTT")); 
} 
26
XElement root = new XElement("root", 
        new XElement("name", "AAA"), 
        new XElement("last", "BBB")); 

XElement children = new XElement("children"); 

foreach (Children c in family) 
{ 
    children.Add(new XElement("child", 
       new XElement("name", c.Name), 
       new XElement("last", c.Last)); 
} 
root.Add(children); 
İlgili konular