vec![String::from("selects"),
String::from("each"),
String::from("select_params"),
String::from("nodes"),
String::from("has"),
String::from("contains")];
selects > each > (one or all or fields) > ... text_attr_html > (text or attr or html);
selects > select_params > selects > ... text_attr_html > (text or attr or html);
selects > nodes > has > contains > text_attr_html > (text or attr or html);
| Capricorn | support | example |val type|
| :----: | :----: | :----- |:----:|
| selects element | ✔ | fieldname:
selects:
- elementname | String |
| selects class | ✔ | fieldname:
selects:
- .classname | String |
| selects class element | ✔ | fieldname:
selects:
- .classname
- elementname | String |
| first | ✔ | fieldname:
selects:
- elementname
nodes:
first: true | String |
| last | ✔ | fieldname:
selects:
- elementname
nodes:
last: true | String |
| eq | ✔ | fieldname:
selects:
- elementname
nodes:
eq: 0 | String |
| parent | ✔ | fieldname:
selects:
- elementname
nodes:
parent: true | String |
| children | ✔ | fieldname:
selects:
- elementname
nodes:
children: true | String |
| prevsibling | ✔ | fieldname:
selects:
- elementname
nodes:
prevsibling: true | String |
| nextsibling | ✔ | fieldname:
selects:
- elementname
nodes:
nextsibling: true | String |
| hasclass | ✔ | fieldname:
selects:
- elementname
has:
class: classname | String |
| hasattr | ✔ | fieldname:
selects:
- elementname
has:
attr: attrname | String |
| each one | ✔ | fieldname:
selects:
- elementname
each:
one:
selects:
- .classname
... | String |
| each all | ✔ | fieldname:
selects:
- elementname
each:
all:
selects:
- .classname
... | Array |
| each fields | ✔ | fieldname:
selects:
- elementname
each:
fields:
fieldname:
selects:
- .classname
...
fieldname1:
selects:
- .classname
... | Map |
| selectparams | ✔ | fieldname:
selects:
- elementname
selectparams:
selects:
- .classname
... | ... |
| text | ✔ | fieldname:
selects:
- elementname
textattrhtml:
text: true | String |
| attr | ✔ | fieldname:
selects:
- elementname
textattrhtml:
attr: true | String |
| html | ✔ | fieldname:
selects:
- elementname
textattrhtml:
html: true | String |
| text contains | ✔ | fieldname:
selects:
- elementname
contains:
contains:
text:
- test | String |
| text not contains | ✔ | fieldname:
selects:
- elementname
contains:
notcontains:
text:
- test | String |
| html contains | ✔ | fieldname:
selects:
- elementname
contains:
contains:
html:
- test | String |
| html not contains | ✔ | fieldname:
selects:
- elementname
contains:
notcontains:
html:
- test | String |
| exec order | ✔ | fieldname:
execorder:
- selects
- has
- nodes
selects:
- elementname
has:
class: classname
nodes:
first: true | String |
| data format splits | ✔ | fieldname:
selects:
- elementname
dataformat:
splits:
- { key: str } | Array |
| data format splits | ✔ | fieldname:
selects:
- elementname
dataformat:
splits:
- { key: str, index: 0 } | String |
| data format replaces | ✔ | fieldname:
selects:
- elementname
dataformat:
replaces:
- str | String |
| data format deletes | ✔ | fieldname:
selects:
- elementname
dataformat:
deletes:
- str | String |
| data format find | ✔ | fieldname:
selects:
- elementname
dataformat:
find: regex | String |
| data format finditer | ✔ | fieldname:
selects:
- elementname
dataformat:
finditer: regex | Array |
| Multi-version regular matching err | ✔ |regexesmatchparsehtml:
- regex: regex
version: 1
err: errmsg | Err |
| Multi-version regular matching fields | ✔ |regexesmatchparsehtml:
- regex: regex
version: 1
fields:
fieldname:
selects:
...
field_name:
selects:
... | Map |
let yml = read_file("./test_html/test.yml").unwrap();
let params: parse::HashMapSelectParams = serde_yaml::from_str(&yml).unwrap();
let html = read_file("./test_html/test.html").unwrap();
let r = parse::parse_html(¶ms, &html);
let yml = read_file("./test_html/regexes_match_parse_html.yml").unwrap();
let v: match_html::MatchHtmlVec = serde_yaml::from_str(&yml).unwrap();
let html = read_file("./test_html/test.html").unwrap();
let r = v.regexes_match_parse_html(html)?;