我正在用c#编写xml,我想出了一个很长的相同函数列表 - SetAttribute,想知道是否有人知道编写这段代码的聪明方法。我想创建一个数组,但不知道如何,任何人都知道如何为这段代码编写数组?
XmlDocument doc = new XmlDocument();
XmlDeclaration decl = doc.CreateXmlDeclaration("1.0", "utf-16", null);
doc.AppendChild(decl);
XmlElement ChatMapper = doc.CreateElement("ChatMapperProject");
doc.AppendChild(ChatMapper);
XmlNode xmldocSelect = doc.SelectSingleNode("ChatMapperProject");
//Crteate Attribute
ChatMapper.SetAttribute("xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance");
ChatMapper.SetAttribute("xmlns:xsd", "http://www.w3.org/2001/XMLSchema");
ChatMapper.SetAttribute("Title", "");
ChatMapper.SetAttribute("Version", "1.5.1.0");
ChatMapper.SetAttribute("Author", "");
ChatMapper.SetAttribute("EmphasisColor1Label", "");
ChatMapper.SetAttribute("EmphasisColor1", "#000000");
ChatMapper.SetAttribute("EmphasisStyle1", "---");
ChatMapper.SetAttribute("EmphasisColor2Label", "");
ChatMapper.SetAttribute("EmphasisColor2", "#000000");
ChatMapper.SetAttribute("EmphasisStyle2", "---");
ChatMapper.SetAttribute("EmphasisColor3Label", "");
ChatMapper.SetAttribute("EmphasisColor3", "#000000");
ChatMapper.SetAttribute("EmphasisStyle3", "---");
ChatMapper.SetAttribute("EmphasisColor4Label", "");
ChatMapper.SetAttribute("EmphasisColor4", "#000000");
ChatMapper.SetAttribute("EmphasisStyle4", "---");
答案 0 :(得分:0)
您可以为属性名称创建字典对象作为键,将其值作为值。
在循环中运行字典并添加所有属性。
但是像Liam提到的那样,如果您可以序列化对象本身会更好,这将是更好的解决方案。
答案 1 :(得分:0)
以下是您需要的示例代码。
XmlDocument doc = new XmlDocument();
XmlDeclaration decl = doc.CreateXmlDeclaration("1.0", "utf-16", null);
doc.AppendChild(decl);
XmlElement ChatMapper = doc.CreateElement("ChatMapperProject");
doc.AppendChild(ChatMapper);
XmlNode xmldocSelect = doc.SelectSingleNode("ChatMapperProject");
//Crteate Attribute
Dictionary<String, String> attributes = new Dictionary<string, string>();
attributes.Add("xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance");
attributes.Add("xmlns:xsd", "http://www.w3.org/2001/XMLSchema");
attributes.Add("Title", "");
attributes.Add("Version", "1.5.1.0");
attributes.Add("Author", "");
attributes.Add("EmphasisColor1Label", "");
attributes.Add("EmphasisColor1", "#000000");
attributes.Add("EmphasisStyle1", "---");
attributes.Add("EmphasisColor2Label", "");
attributes.Add("EmphasisColor2", "#000000");
attributes.Add("EmphasisStyle2", "---");
attributes.Add("EmphasisColor3Label", "");
attributes.Add("EmphasisColor3", "#000000");
attributes.Add("EmphasisStyle3", "---");
attributes.Add("EmphasisColor4Label", "");
attributes.Add("EmphasisColor4", "#000000");
attributes.Add("EmphasisStyle4", "---");
foreach (KeyValuePair<String, String> attribute in attributes)
{
ChatMapper.SetAttribute(attribute.Key, attribute.Value);
}