游戏引擎:Unity 版本:2019.4.6f1 【2017版本以上均可】 编译平台:Visual Studio 2019
问题截图翻译:无效的异常操作:该文档已具有“ DocumentElement”节点
解决方案 方案1 1.0 检查XML格式是否正确XML类似于HTML,有着以下严格的包含关系。切勿出现越级包含的关系。
声明关系对象XmlDocument包含编码头部声明、根节点XmlElement(节点元素)包含各级节点及内容1.1 相关案例详解
如下图示例为一个简略不完整的基本框架内容。
//需求XMLDoc
XmlDocument xmlDoc = new XmlDocument();
//编码头部声明
XmlDeclaration header = xmlDoc.CreateXmlDeclaration("1.0", "UTF-8", "");
xmlDoc.AppendChild(header);
//根节点
XmlElement root = xmlDoc.CreateElement("root_CharacterTemplateData");
xmlDoc.AppendChild(root);
//一级节点 Id Name ------------以下两行为问题行
XmlElement child = xmlDoc.CreateElement("CharaterTemplateData");
xmlDoc.AppendChild(child);
child.SetAttribute("id", "1000");
child.SetAttribute("name", "法师");
其中,我们在一级节点处xmlDoc.AppendChild(child);
添加节点元素,添加方式向xmlDoc
添加,违背了格式的严格要求。正确的添加方式为root.AppendChild(child)
,即向一级节点的上一级root
(根节点)。
ps:这里的root仅仅是命名关系,可以更改为其他命名,但XML格式严格遵循上表。