我们在接口测试时有些数据依赖,需要从上一个接口返回数据中拿到相关数据,然后作为一个接口参数传递,下面我给大家分享下怎么代码去解析xml数据
创建一个 java 项目,将解析 xml 数据的代码封装并导出成 jar 包,登陆 MeterSphere,然后进入【项目设置】-【文件管理】模块,点击添加文件将 jar 上传
导入成功后,点击右边的眼睛将 jar 开启
我这边用自定义脚本模拟接口返回,
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.test.XmlUtils;
String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
"<sitemapindex xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\">\n" +
"<sitemap>\n" +
" <loc><![CDATA[http://qq.com/xml/_1.xml]]></loc>\n" +
" <lastmod><![CDATA[2018-06-20 01:28:09]]></lastmod>\n" +
" </sitemap>\n" +
"<sitemap>\n" +
" <loc><![CDATA[http://qq.com/xml/_2.xml]]></loc>\n" +
" <lastmod><![CDATA[2018-06-20 01:28:09]]></lastmod>\n" +
" </sitemap>\n" +
"<sitemaps>\n" +
" <sitemap1>\n" +
" <loc><![CDATA[http://qq.com/xml/_46.xml]]></loc>\n" +
" <lastmod><![CDATA[2018-06-20 01:28:09]]></lastmod>\n" +
" </sitemap1>\n" +
" <sitemap>\n" +
" <loc><![CDATA[http://qq.com/xml/_47.xml]]></loc>\n" +
" <lastmod><![CDATA[2018-06-25 01:28:09]]></lastmod>\n" +
" </sitemap>\n" +
"</sitemaps>\n" +
"</sitemapindex>\n";
// log.info(xml);
JSONObject json = XmlUtils.xml2Json(xml);
JSONObject js = json.getJSONObject("sitemapindex");
log.info("--------------------------");
log.info(js.toString());
JSONArray array = js.getJSONArray("sitemaps");
log.info(array.getJSONObject(0).toString());
log.info(array.getJSONObject(0).getJSONArray("sitemap").getJSONObject(0).get("loc"));