nodejs解析xml文件方式(xml->json)

 更新时间:2024年08月29日 08:47:12   作者:slient_love  
这篇文章主要介绍了nodejs解析xml文件方式(xml->json),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

nodejs解析xml文件(xml->json)

nodejs解析xml文件的方式有很多

  • xml2j
  • xmlreader
  • xmldom+xpath
  • xmldoc
  • xml-js

可自行访问官网,里面有用法示例,在此不再进行赘述。

在开发中要解析的xml文件内容

如下:

<xml xmlns:s='uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882'
   xmlns:dt='uuid:C2F41010-65B3-11d1-A29F-00AA00C14882'
   xmlns:rs='urn:schemas-microsoft-com:rowset'
   xmlns:z='#RowsetSchema'>
<s:Schema id='RowsetSchema'>
 <s:ElementType name='row'>
   <s:AttributeType  name='grade'   rs:number='1'>
   <s:datatype   dt:type='varchar'   dt:maxLength='64'/>
   </s:AttributeType>
   <s:AttributeType   name='sex'   rs:number='8'>
   <s:datatype   dt:type='numeric'   dt:maxLength='22'/>
   </s:AttributeType>
 </s:ElementType>
</s:Schema>
<rs:data>
<z:row  grade='2' sex='男' />
</rs:data>
 </xml>

业务上需要获取z:row 里面的属性,即grade='2' sex='男',搞了一下午,使用xml2j,xmlreader…获取到的数据都不是想要的结果,最后使用xml-js一下就成功了。

开心撒花~

代码如下:

let filepath = 'H:\\workcode\\xml\\TCOMPANY.xml'

const fs = require('fs');
let convert = require('xml-js');
let xml = fs.readFileSync(filepath,'utf-8');
let result1 = convert.xml2json(xml, {compact: true, spaces: 4});
console.log(result1);

结果如下:

{
    "xml": {
        "_attributes": {
            "xmlns:s": "uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882",
            "xmlns:dt": "uuid:C2F41010-65B3-11d1-A29F-00AA00C14882",
            "xmlns:rs": "urn:schemas-microsoft-com:rowset",
            "xmlns:z": "#RowsetSchema"
        },
        "s:Schema": {
            "_attributes": {
                "id": "RowsetSchema"
            },
            "s:ElementType": {
                "_attributes": {
                    "name": "row"
                },
                "s:AttributeType": [
                    {
                        "_attributes": {
                            "name": "grade",
                            "rs:number": "1"
                        },
                        "s:datatype": {
                            "_attributes": {
                                "dt:type": "varchar",
                                "dt:maxLength": "64"
                            }
                        }
                    },
                    {
                        "_attributes": {
                            "name": "sex",
                            "rs:number": "8"
                        },
                        "s:datatype": {
                            "_attributes": {
                                "dt:type": "numeric",
                                "dt:maxLength": "22"
                            }
                        }
                    }
                ]
            }
        },
        "rs:data": {
            "z:row": {
                "_attributes": {
                    "grade": "2",
                    "sex": "男"
                }
            }
        }
    }
}

成功啦!

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Nodejs + Websocket 指定发送及群聊的实现

    Nodejs + Websocket 指定发送及群聊的实现

    这篇文章主要介绍了Nodejs + Websocket 指定发送及群聊的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • 基于node下的http小爬虫的示例代码

    基于node下的http小爬虫的示例代码

    本篇文章主要介绍了基于node下的http小爬虫的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-01-01
  • 在node中使用jwt签发与验证token的方法

    在node中使用jwt签发与验证token的方法

    这篇文章主要介绍了在node中使用jwt签发与验证token的方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-04-04
  • JavaScript第三方库delegates的用法详解

    JavaScript第三方库delegates的用法详解

    delegates 库为 JavaScript 社区提供了一种高效的方式来声明对象之间的委托关系,让代码结构更加清晰,减少不必要的重复,并提高可维护性,本文将详细介绍如何在 Node.js 项目中使用 delegates 库进行高级委托,需要的朋友可以参考下
    2024-01-01
  • 基于npm install或run时一些报错的解决方案

    基于npm install或run时一些报错的解决方案

    这篇文章主要介绍了基于npm install或run时一些报错的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • 什么是Node.js?Node.js详细介绍

    什么是Node.js?Node.js详细介绍

    这篇文章主要介绍了什么是Node.js,Node.js能做什么,Node.js的优缺点,Node.js的例子等,需要的朋友可以参考下
    2014-06-06
  • Node.js的路由、EJS模板引擎、GET和POST请求讲解

    Node.js的路由、EJS模板引擎、GET和POST请求讲解

    这篇文章介绍了Node.js的路由、EJS模板引擎、GET和POST请求,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • windows离线环境安装node-sass全过程

    windows离线环境安装node-sass全过程

    文章介绍了如何在Windows系统上安装和配置node-sass,并提供了一个详细的步骤指南,首先,通过命令行查看支持版本;然后,下载对应版本的node-sass安装包;接着,在npm配置文件中增加SASS_BINARY_PATH路径配置;最后,执行npmi命令完成安装
    2024-12-12
  • Linux Ubuntu升级nodejs版本的简单步骤

    Linux Ubuntu升级nodejs版本的简单步骤

    Node.js是一种对应于JavaScript运行时环境的编程语言,这篇文章主要给大家介绍了关于Linux Ubuntu升级nodejs版本的简单步骤,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2023-12-12
  • node使用async_hooks模块进行请求追踪

    node使用async_hooks模块进行请求追踪

    这篇文章主要介绍了node使用async_hooks模块进行请求追踪,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01

最新评论