现在的位置: 主页 > 联系方式 > 文章正文

node.js解析xml(xmlreader)

作者:成都渝祥金属丝网制品有限公司 来源:www.cdyuxiang.com 未知发布时间:2017-09-03 12:51:08
node.js解析xml(xmlreader)

Email:longsu2010 at yeah dot net


xml作为一种重要的数据交换格式,我就不相信没人用node.js解析过它。我就随便搜索了一下,果然很多,站群系统,站群,什么把xml转成json啊,等等吧。我看了下,xmlreader这个模块比较简单,功能上满足我的需求。

使用方法简介如下:

1、安装。npm install xmlreader

2、使用。看代码


var xmlreader = require("xmlreader");
var fs = require("fs");

var xml_string = '<response id="1" shop="aldi">'
+ 'This is some other content'
+'<who name="james">James May</who>'
+ '<who name="sam">'
+'Sam Decrock'
+'<location>Belgium</location>'
+'</who>'
+ '<who name="jack">Jack Johnsen</who>'
+'<games age="6">'
+'<game>Some great game</game>'
+'<game>Some other great game</game>'
+'</games>'
+'<note>These are some notes</note>'
+'</response>';


xmlreader.read(xml_string, function(errors, response){
if(null !== errors ){
console.log(errors)
return;
}
console.log( response.response );
console.log( response.response.text() );
});


没啥新奇的,看看输出吧

第一句输出结果为:


{
attributes : [Function],
parent : [Function],
count : [Function],
at : [Function],
each : [Function],
text : [Function],
who : {
array : [[Object], [Object], [Object]],
count : [Function],
at : [Function],
each : [Function]
},
games : {
attributes : [Function],
parent : [Function],
count : [Function],
at : [Function],
each : [Function],
game : {
array : [Object],
count : [Function],
at : [Function],
each : [Function]
}
},
note : {
attributes : [Function],
parent : [Function],
count : [Function],
at : [Function],
each : [Function],
text : [Function]
}
}第二句输出:

This is some other content

根据输出我们就可以猜这东西是怎么回事儿了。

1、xmlreader将xml转换为JSON对象(这样表述不准确,但是大家知道怎么一回事儿)。

2、转换成的JSON对象的嵌套结构与原xml标签嵌套结构相同。

3、视xml中同一级别出现某标签次数不同(一次和多次)生出不同的对应对象,如上的node为一次,who为三次。

4、提供了一下函数供操作属性或者遍历等等。


各方法含义:

1、attributes:获取所有属性。

2、parent:获取父节点。

3、count:获取数目。

4、at:获取下标为指定值的节点。

5、each:遍历,参数为一个函数。

6、text:获取节点内的文本,仅当前节点的文本,不包含子节点的文本。

企业建站2800元起,携手武汉肥猫科技,做一个有见地的颜值派!更多优惠请戳:湖北网站制作 http://hubei.666rj.com

上一篇:Python 字符串格式化 下一篇:最后一页