cheerio

预计阅读时间: 2 分钟

v6.3.9 新增

稳定性:稳定

这是一个用于解析和生成 html/xml 的库,使用方法请参阅官方网站,该模块不会自动加载,如需使用

const cheerio = require('cheerio');

这里简单介绍一下在 autojs 中的用途。

当你有一个变量,想让它的内容嵌入到 ui 界面中时你可能会这么做

let text = "变量文本"
ui.layout(
    <vertical>
            <text text="{{text}}" textColor="#000000" textSize="18sp" maxLines="1" />
            <text text="{{text}}" textColor="#000000" textSize="18sp" maxLines="1" />
    </vertical>)
//或是
ui.layout(`
    <vertical>
            <text text="${text}" textColor="#000000" textSize="18sp" maxLines="1" />
            <text text="${text}" textColor="#000000" textSize="18sp" maxLines="1" />
    </vertical>`)
//或是
ui.layout(
    <vertical>
            <text id="text1" textColor="#000000" textSize="18sp" maxLines="1" />
            <text id="text2" textColor="#000000" textSize="18sp" maxLines="1" />
    </vertical>)
ui.text1.setText(text)
ui.text2.setText(text)

这 3 种方法无论哪种都有些缺陷,第一种变量不是全局的则会报错,第二种字符串不能包含特殊字符,否则解析 xml 时报错,第三种调用安卓方法有一定的性能问题,且不够灵活。

使用cheerio则可以像这样处理:

const cheerio = require('cheerio');
let text = "变量文本"
let $ = cheerio.load( `<vertical>
            <text class="text" textColor="#000000" textSize="18sp" maxLines="1" />
            <text class="text" textColor="#000000" textSize="18sp" maxLines="1" />
    </vertical>`,{
        xmlMode:true
    })
$('.text').text(text);
let xml = $.xml()
log(xml)
ui.layout(xml)

高级的用法还可以将 xml 组件化,列表生成等