HCOOLH
HCOOLH

Reputation: 61

C# How to adding each element from an array to sub-Node in XML tree?

I want insert each element from an array add them to a XML tree.

List<String> list = {"abc","cba","bca"};  
NameList.Add(new XElement("movie", new XElement("title", this.textBox1.Text), new XElement("genre",list)));

This statement just create stuff like this:

<movie>
<title>smoething</title>
<genre>abccbabca</genre>
</movie>

I want create like this:

<movie>
<title>smoething</title>
<genre>abc</genre>
<genre>cba</genre>
<genre>bca</genre>
</movie>

Upvotes: 2

Views: 2543

Answers (2)

There is a very simple solution using LINQ:

List<String> list = {"abc","cba","bca"}; 
NameList.Add(new XElement("movie", new XElement("title", this.textBox1.Text), list.Select(l => new XElement("genre", l))));

Upvotes: 4

cscmh99
cscmh99

Reputation: 2781

using for loop could be a way

        var strList = new List<string> {"abc", "cba", "bca"};
        var xml = new XmlDocument();
        var root = xml.AppendChild(xml.CreateElement("Movie"));
        root.AppendChild(xml.CreateElement("Title")).InnerText = "somthing";

        foreach (var str in strList)
        {
            root.AppendChild(xml.CreateElement("Genre")).InnerText = str;
        }

        MessageBox.Show(xml.OuterXml);

Upvotes: 2

Related Questions