c#在数组的帮助下写xml

时间:2015-05-12 11:59:41

标签: c# xml

我正在用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", "---");

2 个答案:

答案 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);
            }