C# XML: System.InvalidOperationException

本文关键字:InvalidOperationException System XML | 更新日期: 2023-09-27 17:57:32

我一直在用一个项目学习C#的XML,但我一直收到InvalidOperationException。我已经把代码放在下面了

        XmlTextWriter writer = new XmlTextWriter(path, System.Text.Encoding.UTF8);
        writer.WriteStartDocument(true);
        writer.Formatting = Formatting.Indented;
        writer.Indentation = 4;
        writer.WriteStartElement("User Info");
            writer.WriteStartElement("Name");
                writer.WriteString(userName);
            writer.WriteEndElement();
            writer.WriteStartElement("Tutor Name");
                writer.WriteString(tutorName);
            writer.WriteEndElement();
        writer.WriteEndElement();
        writer.WriteStartElement("Course Data"); /*This is where the exception points to*/
            foreach (UserCourse c in courses)
            {
                String cn = c.Name;
                writer.WriteStartElement(cn);
                foreach (UserUnit u in c.Units)
                {
                    writer.WriteStartElement(u.Name.ToString());
                    foreach (UserObjective o in u.Objectives)
                    {
                        writer.WriteStartElement(o.Name.ToString());
                        writer.WriteString(o.Score.ToString());
                        writer.WriteEndElement();
                    }
                    writer.WriteEndElement();
                }
                writer.WriteEndElement();
            }
        writer.WriteEndElement();
        writer.WriteEndDocument();
        writer.Close();

也许有人能看出我做错了什么。我感谢任何帮助!

C# XML: System.InvalidOperationException

XML元素名称不能包含空格。

请参阅XML命名规则。

而且看起来你应该有一个根元素。像CourseData应该在UserInfo内部。

Checkout Fiddle

是"用户信息"answers"课程数据"是不同的实体。如果是这样的话,我认为您可以将它们封装在一个实体中。

            XmlTextWriter writer = new XmlTextWriter(path, System.Text.Encoding.UTF8);
            writer.WriteStartDocument(true);
            writer.Formatting = Formatting.Indented;
            writer.Indentation = 4;
            writer.WriteStartElement("My Entity"); /* It is a biggest one*/
            writer.WriteStartElement("User Info");
            writer.WriteStartElement("Name");
            writer.WriteString(userName);
            writer.WriteEndElement();
            writer.WriteStartElement("Tutor Name");
            writer.WriteString(tutorName);
            writer.WriteEndElement();
            writer.WriteEndElement();
            writer.WriteStartElement("Course Data"); /*This is where the exception points to*/
            foreach (UserCourse c in courses)
            {
                String cn = c.Name;
                writer.WriteStartElement(cn);
                foreach (UserUnit u in c.Units)
                {
                    writer.WriteStartElement(u.Name.ToString());
                    foreach (UserObjective o in u.Objectives)
                    {
                        writer.WriteStartElement(o.Name.ToString());
                        writer.WriteString(o.Score.ToString());
                        writer.WriteEndElement();
                    }
                    writer.WriteEndElement();
                }
                writer.WriteEndElement();
            }
            writer.WriteEndElement();
            writer.WriteEndElement();
            writer.WriteEndDocument();
            writer.Close();
相关文章:
  • 没有找到相关文章