“not well-formed”表示XML文档违反基本语法规则,如标签未闭合、嵌套交叉、自闭合标签缺斜杠、属性值引号不匹配或含未转义的特殊字符(如<)。

XML报错“not well-formed”表示文档不符合XML基本语法规则,不是格式良好的XML。这类错误通常在解析初期就被拒绝,和内容逻辑无关,只跟结构、符号、编码等底层规范有关。
检查XML是否闭合完整
XML要求所有开始标签必须有对应结束标签(或自闭合),且嵌套不能交叉。常见错误包括:
- 漏写结束标签,如<name>张三 没有</name>
- 标签交叉嵌套:<a><b></a></b>(错误)应为<a><b></b></a>
- 自闭合标签未加斜杠:<img src="x.jpg"> 应为 <img src="x.jpg"/>
验证引号与特殊字符是否合规
属性值必须用单引号或双引号包裹,且内部不能混用或缺失;同时,小于号
- 错误:<item desc=hello world>(属性值没引号)
- 错误:<msg>5 < 10</msg> 应写成 <msg>5
- 错误:<note>He said "Hello"</note> 若外层用双引号,内部需转义为 " 或改用单引号包裹
确认编码声明与实际编码一致
文件开头的<?xml version="1.0" encoding="UTF-8"?>必须与文件真实编码完全匹配。常见问题:
- 声明为UTF-8,但文件实际保存为GBK(尤其Windows记事本易出此错)
- BOM头干扰:UTF-8 with BOM可能被某些解析器识别为非法字符,建议保存为无BOM UTF-8
- 中文路径或内容含不可见控制字符(如零宽空格、软回车),可用编辑器“显示所有字符”功能排查
用工具快速验证XML格式
人工检查易疏漏,推荐以下轻量方式验证:
- 浏览器直接打开XML文件:现代Chrome/Firefox会高亮报错位置并提示原因
- 在线校验工具:如https://www.xmlvalidation.com/,粘贴内容或上传文件即可反馈具体行号和错误类型
- IDE辅助:VS Code安装“XML Tools”插件,可格式化+实时校验;IntelliJ/PyCharm默认支持XML语法检查
- 命令行(Linux/macOS):xmllint --noout yourfile.xml,返回空表示格式良好
不复杂但容易忽略。抓住闭合、引号、转义、编码四个关键点,再借助工具定位,99%的not well-formed错误都能快速解决。

















