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

本文关键字:添加 属性 一个 | 更新日期: 2023-09-27 18:16:02

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

        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>

帮助我做这样的改变。

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

您可以用属性的值构建一个字符串并赋值。

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连接字符串数组的所有元素,每个元素之间使用指定的分隔符。这里的分隔符是","