zoukankan      html  css  js  c++  java
  • 关于 SAXParseException Content is not allowed in Prolog (前言中不允许有内容)

    解析 XML 文件的时候,如 Mybatis 的 Mapper 文件,有时会出现 org.xml.sax.SAXParseException 前言中不允许有内容 的异常,英文就是 Content is not allowed in Prolog 。导致这个问题通常是两个原因

    1. XML 文件开头出现了空白符或其它字符,比如 <?xml version="1.0" 这种开头有空格或者是 .<?xml version="1.0" 这种出现多余符号的。
    2. 文件编码为 UTF-8 with BOM,即带 BOM 头的 UTF-8 格式,很多时候都是这个原因。

    如果是文件编码的问题,使用普通的 IDE 转一下格式就行,转成无 BOM 的。

    关于 BOM

    字节顺序标记(英语:byte-order mark,BOM)是位于码点U+FEFF的统一码字符的名称

    不建议使用带 BOM 的 UTF-8 格式

    UTF-8编码过的字节顺序标记则被用来标示它是UTF-8的文件。它只用来标示一个UTF-8的文件,而不用来说明字节顺序。许多视窗程序(包含记事本)会添加字节顺序标记到UTF-8文件。然而,在类Unix系统(大量使用文本文件,用于文件格式,用于进程间通信)中,这种作法则不被建议采用。因为它会妨碍到如解译器脚本开头的Shebang等的一些重要的码的正确处理。它亦会影响到无法识别它的编程语言。如gcc会报告源码档开头有无法识别的字符。而在PHP中,如果没有激活输出缓冲(output buffering),它会使得页面内容开始被送往浏览器(即:用户头文件已被提交),这使PHP脚本无法指定用户头文件(HTTP Header)。字节顺序标记在UTF-8中被表示为序列EF BB BF,对大部分未准备好处理UTF-8的文本编辑器及网页浏览器而言,在ISO-8859-1的环境中则会显示。

  • 相关阅读:
    Python之坐标轴刻度细化、坐标轴设置、标题图例添加
    探索性数据分析
    http://blog.csdn.net/milton2017/article/details/54406482
    libsvm学习日记--1
    推荐系统评测指标—准确率(Precision)、召回率(Recall)、F值(F-Measure)
    python中if __name__ == '__main__': 的解析
    Python类
    TweenMax学习一
    vuejsLearn---通过手脚架快速搭建一个vuejs项目
    vuejsLearn--- -- 怎么查看、修改、追加数据---->data对象
  • 原文地址:https://www.cnblogs.com/toSeeMyDream/p/9257090.html
Copyright © 2011-2022 走看看