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 组件化,列表生成等