cheerio
v6.3.9 新增
这是一个用于解析和生成 html/xml 的库,使用方法请参阅官方网站,该模块不会自动加载,如需使用
const cheerio = require('cheerio');
这里简单介绍一下在 autojs 中的用途。
当你有一个变量,想让它的内容嵌入到 ui 界面中时你可能会这么做
1let text = "变量文本";
2ui.layout(
3 <vertical>
4 <text text="{{text}}" textColor="#000000" textSize="18sp" maxLines="1" />
5 <text text="{{text}}" textColor="#000000" textSize="18sp" maxLines="1" />
6 </vertical>
7);
8//或是
9ui.layout(`
10 <vertical>
11 <text text="${text}" textColor="#000000" textSize="18sp" maxLines="1" />
12 <text text="${text}" textColor="#000000" textSize="18sp" maxLines="1" />
13 </vertical>`);
14//或是
15ui.layout(
16 <vertical>
17 <text id="text1" textColor="#000000" textSize="18sp" maxLines="1" />
18 <text id="text2" textColor="#000000" textSize="18sp" maxLines="1" />
19 </vertical>
20);
21ui.text1.setText(text);
22ui.text2.setText(text);
这 3 种方法无论哪种都有些缺陷,第一种变量不是全局的则会报错,第二种字符串不能包含特殊字符,否则解析 xml 时报错,第三种调用安卓方法有一定的性能问题,且不够灵活。
使用cheerio
则可以像这样处理:
1const cheerio = require("cheerio");
2let text = "变量文本";
3let $ = cheerio.load(
4 `<vertical>
5 <text class="text" textColor="#000000" textSize="18sp" maxLines="1" />
6 <text class="text" textColor="#000000" textSize="18sp" maxLines="1" />
7 </vertical>`,
8 {
9 xmlMode: true,
10 }
11);
12$(".text").text(text);
13let xml = $.xml();
14log(xml);
15ui.layout(xml);
高级的用法还可以将 xml 组件化,列表生成等