微信小程序解析XML数据

  最近在工作中做微信小程序,遇到了后台接口返回的数据格式是XML的问题,而微信小程序不支持DOM,不能直接用DOMParser去解析,所以只能用第三方库去解析了。

  1. 下载xmldom库:https://github.com/jindw/xmldom
  2. 将dom.js、dom-parser.js、sax.js,entities.js拷贝微信小程序需要的文件夹下
  3. 在需要使用的js页面引入import Parser from"…/…/common/js/dom-parser"
    (注意:建议在src根目录下建立lib文件,把相关的工具文件放在里面,便于管理和调用)
//处理接口返回的xml字符串格式的JSON报文
import 	Parser from '../../common/js/dom-parser'

export const formatXml = (data, list) => {
   
	let returnData = []
	let XMLParser = new Parser.DOMParser()
	let xmlData = XMLParser.parseFromString(data, 'text/xml')
	for(let i = 0; i < list.length; i++) {
   
		let itemList = xmlData.getElementsByTagName(list[i])
		if(itemList.length > 0) {
   
			returnData.push(itemList)
		}
	}
	return returnData
}

上面是处理XML而封装的一个方法,根据list参数传入的数组字段,将XML中需要提取的数据转为数组。
例如获取到后台接口的数据后,可以获取如下的几个字段标签的内容。

let detailInfo = formatXml(res.content, ['title', 'media', 'date', 'hour', 'paragraph'])

所用的xml数据:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE article SYSTEM "tradingcentral.dtd"><article id="10329761" status="new">
	<analysis type="TA">
		<content>
			<header
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值