Angular 8中如何将XML转为JSON?NgxXml2jsonService导入失败
在Angular 8中实现XML转JSON的两种有效方法
方法一:修复ngx-xml2json的使用流程
你之前导入NgxXml2jsonService无效,核心问题是未完成模块注册步骤,完整操作如下:
- 安装依赖
npm install ngx-xml2json --save
- 在根模块(
app.module.ts)中注册模块
import { NgModule } from '@angular/core'; import { BrowserModule } from '@angular/platform-browser'; import { NgxXml2jsonModule } from 'ngx-xml2json'; import { AppComponent } from './app.component'; @NgModule({ declarations: [AppComponent], imports: [BrowserModule, NgxXml2jsonModule], // 将模块加入imports数组 providers: [], bootstrap: [AppComponent] }) export class AppModule { }
- 在组件中注入服务并转换XML
import { Component } from '@angular/core'; import { NgxXml2jsonService } from 'ngx-xml2json'; @Component({ selector: 'app-root', template: `<!-- 你的组件模板 -->` }) export class AppComponent { constructor(private xmlService: NgxXml2jsonService) {} convertXmlToJson(xmlString: string) { const parser = new DOMParser(); const xmlDoc = parser.parseFromString(xmlString, 'text/xml'); const jsonResult = this.xmlService.xmlToJson(xmlDoc); console.log(jsonResult); } }
方法二:规范使用xml2js库(适配TypeScript)
你之前用require的方式在Angular的TypeScript环境下易出问题,改用ES6导入+类型支持的方案:
- 安装依赖及类型定义
npm install xml2js --save npm install @types/xml2js --save-dev
- 在组件中导入并实现转换
import { Component } from '@angular/core'; import { parseString } from 'xml2js'; @Component({ selector: 'app-root', template: `<!-- 你的组件模板 -->` }) export class AppComponent { convertXmlToJson(xmlString: string) { // 基础回调式用法 parseString(xmlString, { explicitArray: false }, (err, result) => { if (err) { console.error('解析失败:', err); } else { console.log(result); } }); // Promise封装(适配异步场景) const parsePromise = new Promise((resolve, reject) => { parseString(xmlString, { explicitArray: false }, (err, result) => { err ? reject(err) : resolve(result); }); }); parsePromise.then(json => console.log(json)).catch(err => console.error(err)); } }
注:{ explicitArray: false }是可选配置,用于避免单个节点被自动转为数组,可根据实际XML结构调整。
内容的提问来源于stack exchange,提问作者Ram
相关产品推荐
相关产品推荐

