nodejs实现解析xml字符串为对象的方法示例

本文实例讲述了nodejs实现解析xml字符串为对象的方法。分享给大家供大家参考,具体如下:

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

PS:这里再为大家提供几款关于xml操作的在线工具供大家参考使用:

在线XML/JSON互相转换工具:

以上是 nodejs实现解析xml字符串为对象的方法示例 的全部内容, 来源链接: utcz.com/z/360747.html

回到顶部