org.xml.sax.SAXParseException: 缺少文件根组件。但是XML文件确实存在且格式正常.
原因: XML文件可能为UTF-8编码....且带有BOM签名..用UltraEdit等16进制工具打开XML,可看到前三字节为EF,BB,BF.
解决方法..找到此XML文件,删除BOM签名...
见我的 BOM批量删除工具 BOMRemoverV2.0
此工具来源于BOMRemover 在此基础上完美了下方法...主要增加了 noBomFile方法 ,以检测文件是否为BOM签名文件.
使用方法:
1.trimBom 去掉单个文件的BOM头
2.DealSrcFiles 去掉某个文件夹下的文件BOM头...
import java.io.BufferedReader;import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.FileReader;import java.io.IOException;import java.io.InputStream;import java.io.PushbackInputStream;import java.util.ArrayList;import java.util.HashSet;import java.util.Iterator;import java.util.List;import java.util.Set;public class BOMRemover {/** * ant 编译之后的result文件,注意要编译提示错误的文件名要在同一行 可以设置命令提示窗口的缓冲区大小实现 * * @param resultFileName */public static Set getFileNamesFromCompileResult(String resultFil