node.js解析xml(xmlreader)

来源:互联网 发布:网络兼职论坛发帖 编辑:程序博客网 时间:2024/05/16 06:16

博客搬家:由于各种原因,我现在的博客将首发于blog.mojijs.com, 可以百度搜索 “姜哥的墨迹技术博客” , 或者 点击这里 本文地址 http://blog.mojijs.com/post/19.html

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:获取节点内的文本,仅当前节点的文本,不包含子节点的文本。



原创粉丝点击