0

xml にノードを動的に追加したいのですが、files 配列に大きな no が含まれています。ファイルの数なので、このステートメントnew XElement("FileName",files[0])を書くことは避けたいです。このステートメントで for/foreach ループを実行する方法、またはこの目標を達成するための他の方法はありますか?

string [] sep = { ",",";" };
string[] files = txtFiles.Text.Split(sep, StringSplitOptions.RemoveEmptyEntries);

XDocument xdoc = new XDocument(
                    new XDeclaration("1.0", "utf-16", "true"),
                    new XElement("data",
                        new XElement("rn",
                            new XAttribute("Active", "true"),
                            new XAttribute("Name", txtReportName.Text),   
                        new XElement("Files",
                            new XElement("FileName",files[0]),
                            new XElement("FileName",files[1]),
                            new XElement("FileName",files[2])))));

出力:

<data>
<rn Active="true" Name="testdata">
<Files>
  <FileName>file1</FileName>
  <FileName>file2</FileName>
  <FileName>file3</FileName>
</Files>
</rn>
</data>
4

1 に答える 1

1
string [] sep = { ",",";" };
string[] files = txtFiles.Text.Split(sep, StringSplitOptions.RemoveEmptyEntries);

XDocument xdoc = new XDocument(
                    new XDeclaration("1.0", "utf-16", "true"),
                    new XElement("data",
                        new XElement("rn",
                            new XAttribute("Active", "true"),
                            new XAttribute("Name", txtReportName.Text),   
                        new XElement("Files",
                            files.Select(x => new XElement("FileName", x))))));
于 2013-10-23T09:50:51.837 に答える