node.js 解析xml BOM问题(xmlreader sax.js)
Email:longsu2010 at yeah dot net
之前写了两篇文章关于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
温馨提示:
写程序有错误日志是很重要的,可以很快定位到系统出现异常的原因。
node.js 解析xml BOM问题(xmlreader sax.js)的更多相关文章
- CSS控制XML与通过js解析xml然后通过html显示xml中的数据
使用CSS控制XML的显示 book.css bookname{ display:block;color:Red} author{ display:block;font-style:italic} p ...
- JS解析XML文件和XML字符串
JS解析XML文件 <script type='text/javascript'> loadXML = function(xmlFile){ var xmlDoc=null; //判断浏览 ...
- js解析xml,获取XMl标签属性值
<script type="text/javascript"> var xml="<?xml version=\"1.0\" enc ...
- js 解析XML 在Edge浏览器下面 无法准确读到节点属性值
js 解析XML 在Edge浏览器下面 无法准确读到节点属性值 Dom.documentElement.childNodes[j].attributes[2] 这个是大众写法 在win10的edge ...
- Java解析XML汇总(DOM/SAX/JDOM/DOM4j/XPath)
[目录] 一.[基础知识——扫盲] 二.[DOM.SAX.JDOM.DOM4j简单使用介绍] 三.[性能测试] 四.[对比] 五.[小插曲XPath] 六.[补充] 关键字:Java解析xml.解析x ...
- Java高级特性 第14节 解析XML文档(2) - SAX 技术
一.SAX解析XML文档 SAX的全称是Simple APIs for XML,也即XML简单应用程序接口.与DOM不同,SAX提供的访问模式是一种顺序模式,这是一种快速读写XML数据的方式.当使用S ...
- 用js解析XML文件,字符串一些心得
解析XML文件遇到的问题 今天秦博士叫我解析一下XML文件,将里面的所有的X坐标Y坐标放在一个数组里面然后写在文档里让他进行算法比对,大家都知道了啦,解析XML文件获取里面的坐标数据什么的,当然是用前 ...
- JS 解析Xml
loadXML = function (xmlString) { var xmlDoc = null; //判断浏览器的类型 //支持IE浏览器 if (!window.DOMParser & ...
- java解析xml的方式DOM,SAX,DOM4J,JDOM,StAX
1)DOM(JAXP Crimson解析器)DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准.DOM是以层次结构组织的节点或信息片断的集合.这个层次结构允许开发人员在树中寻找 特定信息. ...
随机推荐
- TreeView控件例子
XmL文件代码: <?xml version="1.0" encoding="utf-8" ?> <Area> <Province ...
- maven 添加自己的包
mvn install:install-file -Dfile=d:/flea.jar -DgroupId=com.flea.bussiness -DartifactId=flea -Dversion ...
- 笔试题引出float数据的存储方式的深究
笔试题: #include <iostream>#include <stdio.h>#include <string.h>#include <conio.h& ...
- SharePoint网站集功能介绍
SharePoint网站集功能介绍 https://support.office.com/zh-cn/article/%E5%90%AF%E7%94%A8%E6%88%96%E7%A6%81%E7%9 ...
- 通过SSIS监控远程服务器磁盘空间并发送邮件报警
本文直接参考了博客园软件人生的文章操作的,写在这里只为做个记录. 到公司这边先把两个报表服务器接收了. 为防止宕机,部署个磁盘警告的SSIS包. Step 1 建立两个变量来接收和写入磁盘容量 Ste ...
- OpenCV 安装
OpenCV 安装 一.环境说明: 操作系统:window10 opencv版本是:VERSION3.1 二.安装过程: [1]官网下载:http://opencv.org/downloads.htm ...
- Java疯狂讲义
- jQuery通知插件noty
jQuery 通知查件noty 简单使用 官方:http://ned.im/noty/ 其它查件推荐 NotifIt Demo http://js.itivy.com/jiaoben1852/inde ...
- asp.net 页面执行过程
Application_BeginRequest Application_AuthenticateRequest Application_AuthorizeRequest Application_Re ...
- WebRTC–getUserMedia-filter
示例说明:抓取MediaStream的一帧数据,并对该帧数据使用Css滤镜效果. 步骤: 1. 由getUserMedia方法获取一个可用的MediaStream 2. canvas方法drawIma ...