游戏引擎: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格式严格遵循上表。
本文针对Unity游戏中遇到的XML文档异常问题进行了解析,并提供了一种有效的解决方案。通过具体案例展示了如何修正XML文档结构,确保其符合正确的层级关系。

283

被折叠的 条评论
为什么被折叠?



