Java 通过以下代码解析xml字符串或者文件时遇到错误:尾随节中不允许有内容,代码如下:

DocumentBuilder db = dbf.newDocumentBuilder();
//通过DocumentBuilder对象的parser方法加载test.xml
Document document = db.parse("D:\\JavaCode\\IDEASpaces\\test.xml");
//或者通过以字符串加载xml内容
Document doc2 = db.parse( new InputSource( new StringReader( urlString ) ) );

报错:

[Fatal Error] test.xml:24:9: 尾随节中不允许有内容。
org.xml.sax.SAXParseException; systemId: file:///D:\JavaCode\IDEASpaces\test.xml; lineNumber: 36; columnNumber: 10; 尾随节中不允许有内容。

原因也简单,是因为我xml里格式多了一个<没有转义导致文件格式有错误,可以通过以下转义字符比对自己的xml内容。

尤其要注意空格,它是最容易被忽略的。

xml中转义字如下:

显示结果 描述 转义字符 十进制
  空格 &nbsp; &#160;
< 小于号 &lt; &#60;
> 大于号 &gt; &#62;
& 与号 &amp; &#38;
" 双引号 &quot; &#34;
' 单引号 &apos; &#39;
× 乘号 &times; &#215;
÷ 除号 &divde; &#247;

检查一下是否出现了特殊符号,尤其要注意这个空格,我们很难看出来 ,传输内容的空格可以借助工具来查看,这里我推荐使用Notepad++来查看,通过勾选视图里的"显示所有字符"可以看到空格。

相关文章:

Java encode转码和解码