用eggjs返回xml格式数据,前端解析xml

摘要:
最近,该公司要求从接口返回xml格式的数据,然后由前端解析和呈现。类似的情况以前也处理过。接口是用java编写的。如果您这次想编写演示,请使用eggjs尝试返回xml格式的接口,然后前端将处理结果。nodejs的结尾是eggjs的开头。根据官方文件,应首先运行应用程序。接下来,您需要安装依赖的egg-view-ejsnpmiegg-view-ejs-S配置文件/config/plugin.js并添加“usestrict”导出;。。。修改/config/config。违约js“限制”;module.exports=appInfo=˃{…config.view={mapping:{'.xml':'ejs',},};…}/App/router.js添加了一个路由“usestrict”;module.exports=应用=˃{const{router,controller}=应用;…//模拟xml格式数据路由器的返回。获取;…};添加相应的控制器/app/controller/xml。js“限制”;constController=require.Controller;classXmlControllerextendsController{asyncindex(){const{ctx}=this;//使用模板引擎awaitctx。渲染;}}module.exports=XmlController;在项目目录应用程序中创建视图文件夹,并创建index.xml模板Success可以测试,并且可以测试在邮递员中运行的结果:˂?

最近公司有个需求,需要从接口返回xml格式数据,再由前端解析后渲染。之前处理过类似的场景,接口是用java写的。本次想写个demo,用eggjs尝试返回xml格式接口,再由前端处理结果。

nodejs端

首先是eggjs,根据官方文档,先把应用跑起来。
接着需要安装依赖egg-view-ejs

npm i egg-view-ejs -S

配置文件 /config/plugin.js 添加

'use strict';
...

exports.ejs = {
  enable: true,
  package: 'egg-view-ejs',
};

...

修改 /config/config.default.js

'use strict';
module.exports = appInfo => {
...
  config.view = {
    mapping: {
      '.xml': 'ejs',
    },
  };
...
}

/app/router.js 加个路由

'use strict';
module.exports = app => {
  const { router, controller } = app;
  ...
  // 模拟返回xml格式数据
  router.get('/xml', controller.xml.index);
  ...
};

新增对应的控制器 /app/controller/xml.js

'use strict';
const Controller = require('egg').Controller;
class XmlController extends Controller {
  async index() {
    const { ctx } = this;
    // 使用模板引擎
    await ctx.render("index.xml",{lists:[{name:'Tom'},{name:'Jerry'}]});
  }
}
module.exports = XmlController;

在项目目录 app 中创建 view 文件夹, 并创建 index.xml 模板

<?xml version="1.0" encoding="UTF-8"?>
<oauth>
  <status>200</status>
  <data>
    <% for( let i = 0; i < lists.length; i++ ) { %>
      <list> <name><%=lists[i].name%></name> </list>
    <% } %>
  </data>
  <message>Success</message>
</oauth>

可以测试了,在postman中运行结果:

<?xml version="1.0" encoding="UTF-8"?>
<oauth>
  <status>200</status>
  <data>
    <list>
      <name>Tom</name>
    </list>
    <list>
      <name>Jerry</name>
    </list>
  </data>
  <message>Success</message>
</oauth>

前端

可以用一个html文件测试
引入axios.js cdn依赖

<script src="https://unpkg.com/axios/dist/axios.min.js"></script>

引入 jquery.js 和 jquery.xml2json.js cdn 依赖

<script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.js"></script>   
<script src="http://www.jsons.cn/Down/jquery.xml2json.js"></script>

xml2json可以把xml格式转化成json

axios.get('http://localhost:7001/xml').then(res=>{
  console.log(res.data);
            
  //读取返回字符串
  const _xml = new DOMParser().parseFromString(res.data, "text/xml");
  console.log(_xml);

  //获取 code 节点中内容
  const htmlContent = _xml.getElementsByTagName("data")[0].innerHTML;
  console.log(htmlContent);

  //获得json数组
  const json_obj = $.xml2json(res.data);
  console.log(json_obj);
})

免责声明:文章转载自《用eggjs返回xml格式数据,前端解析xml》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇巧用:empty解决webkit核心浏览器text-indent的bugRocketMQ系列:单机快速搭建单broker环境下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

【转好文】c程序员学习perl

给C程序员的提示 Perl结合了多种编程语言的特性,C语言也在其中。Perl和C有以下相同之处: ·1.分号是每个简单语句必需的,换行不能表示语句结束。 ·2.数组下标也是从0开始,Perl中像substr这样的字符串函数也是从0开始计算位置的。 ·3.逗号操作符的作用一样。 ·4.&&和||操作符作用一样。然而,Perl和C毕竟是两...

Android中xml设置Animation动画效果详解

在Android中,Animation动画效果的实现可以通过两种方式进行实现,一种是tweened animation渐变动画,另一种是frame by frame animation画面转换动画。 tweened animation渐变动画有以下两种类型: 1.alpha 渐变透明度动画效果 2.scale 渐变尺寸伸缩动画效果 frame by fra...

webapi的返回类型,webapi返回图片

1.0 首先是返回常用的系统类型,当然这些返回方式不常用到。如:int,string,list,array等。这些类型直接返回即可。 1 public List<string> Get() 2 { 3 List<string> list = new List<string>() {...

Tomcat的配置文件详解

前提, Tomcat *的下载(绿色版和安装版都适用)Tomcat *的安装和运行(绿色版和安装版都适用)  Tomcat的配置文件,在$TOMCAT_HOME下的conf,我这里是, 1、打开server.xml   我们可以在server.xml文件中修改端口号,找到conf文件夹,打开其中的server.xml, 目前设置的端口号是8080:...

前端处理特殊字符的方法

js中 urlencode编码 encodeURIComponent(编码的具体内容) 解码 decodeURIComponent(解码码的具体内容) 原理:对URL的组成部分进行个别编码,而不用于对整个URL进行编码    let ds=encodeURIComponent("kkddd+")    特殊字符的处理完毕之后,后端需要...

XML和JSON数据格式

目录 XML DTD(文档类型定义) DTD实体 JSON 使用python解析JSON数据 XML和JSON的区别  XML的优缺点 JSON的优缺点 XML和JSON都是web存储和传输过程中数据的格式,其中JSON 使用比较广泛,主要用来前后端交互数据。 XML XML(Extensible Markup Language)扩展标记语言 ,是一种常...