c# - XElement=> रनटाइम पर बच्चों के नोड्स जोड़ें




xml linq-to-xml (2)

इसे इस्तेमाल करे:

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")
                        )
             )
        );

तो मान लीजिए कि मैं क्या हासिल करना चाहता हूं:

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

सुनिश्चित नहीं है कि XElement का उपयोग करना सबसे सरल तरीका है
लेकिन यह है कि मैंने अभी तक किया है:

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

अब मुझे कुछ डेटा के आधार पर "बच्चों" को जोड़ना होगा।
1,2,3,4 हो सकता है ...

इसलिए मुझे हर एक बच्चे को पाने के लिए मेरी सूची के माध्यम से पुनरावृति करना होगा

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

मुसीबत:

इस तरह से मैं "बच्चों के माता-पिता नोड" याद करूँगा। अगर मैं इसे केवल वेश्या से पहले जोड़ देता हूं, तो यह एक बंद नोड के रूप में प्रस्तुत किया जाएगा

<children/>

और वह नहीं जो हम चाहते हैं

सवाल:

मैं 1 भाग में एक पैरेंट नोड कैसे जोड़ सकता हूं और मेरी सूची में कितनी है?


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")); 
} 






xelement