如何在一个属性中添加额外的值?

时间:2015-10-03 12:12:35

标签: c# xml

我想在一个属性中添加这么多值。以下是我的代码,

        XmlDocument doc = new XmlDocument();
        XmlElement root = doc.CreateElement("root");
        doc.AppendChild(root);
        XmlElement mainelement;
        mainelement = doc.CreateElement("main_element");
        root.AppendChild(mainelement);
        string[] array = new string[] { "one", "two", "three" };
        for (int i = 0; i < 3; i++)
        {
            XmlElement subelement = doc.CreateElement("shop");
            subelement.SetAttribute("Name", "");
            subelement.SetAttribute("client", array[i]);
            mainelement.AppendChild(subelement);
        }
         doc.Save(@"C:\simple.xml");

它提供输出,如

<root>
  <main_element>
    <shop Name="" client="one" />
    <shop Name="" client="two" />
    <shop Name="" client="three" />
  </main_element>
</root>

但我的预期输出是

<root>
  <main_element>
    <shop Name="" client="one,two,three" />
  </main_element>
</root>

帮我做这样的改动。提前谢谢。

1 个答案:

答案 0 :(得分:0)

您可以使用属性的值构建一个字符串并指定它。

XmlDocument doc = new XmlDocument();
XmlElement root = doc.CreateElement("root");
doc.AppendChild(root);
XmlElement mainelement;
mainelement = doc.CreateElement("main_element");
root.AppendChild(mainelement);

string[] array = new string[] { "one", "two", "three" };
XmlElement subelement = doc.CreateElement("shop");
subelement.SetAttribute("Name", "");

string clientAttribute = String.Join(",",array);

subelement.SetAttribute("client", clientAttribute);
mainelement.AppendChild(subelement);
doc.Save(@"C:\simple.xml");

String.Join使用每个元素之间的指定分隔符连接字符串数组的所有元素。 这里的分隔符是&#34;,&#34;。