小姜哥的微信

node.js 解析xml BOM问题(xmlreader sax.js)

之前写了两篇文章关于node.js解析xml,说的是xmlreader,文章如下

node.js解析xml(xmlreader)

node.js xmlreader无法获取CDATA区问题修复

今天程序抛出一个错误,如下:

Error: Non-whitespace before first tag.

错误是在sax模块中抛出来的(xmlreader基于sax),意思是说第一个标签前有非空白符。

我打开文件看了下,没有多余的字符,绝对没有。之后就想到了BOM(对了,我的xml文件编码是UTF-8的),十六进制一看还真是有BOM,去掉BOM之后程序顺利的执行了。

原因找到了,之后我就在将字符串传给xmlreader之前写了如下的一段代码。

xml_string = xml_string.replace(/^\ufeff/i, "").replace(/^\ufffe/i, "");

关于BOM是个啥可以参考http://www.w3.org/International/questions/qa-utf8-bom

温馨提示:

写程序有错误日志是很重要的,可以很快定位到系统出现异常的原因。

推荐文章

回到顶部