视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
nodejs解析xml字符串为对象的实例
2020-11-27 19:59:38 责编:小采
文档


本文主要和大家介绍了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:获取节点内的文本,仅当前节点的文本,不包含子节点的文本。

下载本文
显示全文
专题