簡體   English   中英

正確創建XDocument

[英]Creating an XDocument properly

我正在嘗試使用C#創建xml文件,但不斷出現此錯誤:

{“此操作將創建結構不正確的文檔。”}

我正在遵循在網上找到的指南,但不確定自己在做什么錯。

我要遵循的指南位於此處: http : //luka.manojlovic.net/wp-content/uploads/2012/04/05-Code.png

這是我的代碼:

var xml = new XDocument(new XElement("Data"),
                new XElement("Parameter",
                    new XElement("ID", parameters[0].Id.ToString("B")), new XElement("Value", runbookId)), //RunbookID
                new XElement("Parameter",
                    new XElement("ID", parameters[1].Id.ToString("B")), new XElement("Value", employee.JobTitle)), //Title
                new XElement("Parameter",
                    new XElement("ID", parameters[2].Id.ToString("B")), new XElement("Value", employee.UserName)),//Username
                new XElement("Parameter",
                    new XElement("ID", parameters[3].Id.ToString("B")), new XElement("Value", employee.LastName)), //Lastname
                new XElement("Parameter",
                    new XElement("ID", parameters[4].Id.ToString("B")), new XElement("Value", GetManager(employee))), //Manager
                new XElement("Parameter",
                    new XElement("ID", parameters[5].Id.ToString("B")), new XElement("Value", "")),  //Phone
                new XElement("Parameter",
                    new XElement("ID", parameters[6].Id.ToString("B")), new XElement("Value", employee.Initials)),//GUI Initials
                new XElement("Parameter",
                    new XElement("ID", parameters[7].Id.ToString("B")), new XElement("Value", employee.EmployeeNumber)), //Employee #
                new XElement("Parameter",
                    new XElement("ID", parameters[8].Id.ToString("B")), new XElement("Value", GetCompany(employee))), //Company
                new XElement("Parameter",
                    new XElement("ID", parameters[9].Id.ToString("B")), new XElement("Value", "")), //Employee Security
                new XElement("Parameter",
                    new XElement("ID", parameters[10].Id.ToString("B")), new XElement("Value", GetDepartment(employee))), //Department
                new XElement("Parameter",
                    new XElement("ID", parameters[11].Id.ToString("B")), new XElement("Value", employee.Location)), //Office
                new XElement("Parameter",
                    new XElement("ID", parameters[12].Id.ToString("B")), new XElement("Value", employee.FirstName)) //First Name

             );

您正在嘗試創建具有多個根元素XDocument 您不能這樣做,因為XML標准不允許這樣做。 您可能打算使"Parameter"元素成為Data子元素:

        var xml = new XDocument(new XElement("Data",
                        new XElement("Parameter",
                            new XElement("ID", parameters[0].Id.ToString("B")), new XElement("Value", runbookId)), //RunbookID
                        new XElement("Parameter",
                            new XElement("ID", parameters[1].Id.ToString("B")), new XElement("Value", employee.JobTitle)), //Title
                        new XElement("Parameter",
                            new XElement("ID", parameters[2].Id.ToString("B")), new XElement("Value", employee.UserName)),//Username
                        new XElement("Parameter",
                            new XElement("ID", parameters[3].Id.ToString("B")), new XElement("Value", employee.LastName)), //Lastname
                        new XElement("Parameter",
                            new XElement("ID", parameters[4].Id.ToString("B")), new XElement("Value", GetManager(employee))), //Manager
                        new XElement("Parameter",
                            new XElement("ID", parameters[5].Id.ToString("B")), new XElement("Value", "")),  //Phone
                        new XElement("Parameter",
                            new XElement("ID", parameters[6].Id.ToString("B")), new XElement("Value", employee.Initials)),//GUI Initials
                        new XElement("Parameter",
                            new XElement("ID", parameters[7].Id.ToString("B")), new XElement("Value", employee.EmployeeNumber)), //Employee #
                        new XElement("Parameter",
                            new XElement("ID", parameters[8].Id.ToString("B")), new XElement("Value", GetCompany(employee))), //Company
                        new XElement("Parameter",
                            new XElement("ID", parameters[9].Id.ToString("B")), new XElement("Value", "")), //Employee Security
                        new XElement("Parameter",
                            new XElement("ID", parameters[10].Id.ToString("B")), new XElement("Value", GetDepartment(employee))), //Department
                        new XElement("Parameter",
                            new XElement("ID", parameters[11].Id.ToString("B")), new XElement("Value", employee.Location)), //Office
                        new XElement("Parameter",
                            new XElement("ID", parameters[12].Id.ToString("B")), new XElement("Value", employee.FirstName)) //First Name
                            )
                     );

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM