use dom_query::Document;
fn main() {
let html = include_str!("../test-pages/rustwiki_2024.html");
let doc = Document::from(html);
let paradigm_selection =
doc.select(r#"table tr:has(a[title="Programming paradigm"]) td.infobox-data ul > li"#);
println!("Rust programming paradigms:");
for item in paradigm_selection.iter() {
println!(" {}", item.text());
}
println!("{:-<50}", "");
let influenced_by_selection =
doc.select(r#"table tr:has-text("Influenced by") + tr td ul > li > a"#);
println!("Rust influenced by:");
for item in influenced_by_selection.iter() {
println!(" {}", item.text());
}
println!("{:-<50}", "");
let links_selection =
doc.select(r#"p:contains("Rust has a foreign function interface") a[href^="/"]"#);
println!("Links in the FFI block:");
for item in links_selection.iter() {
println!(" {}", item.attr("href").unwrap());
}
println!("{:-<50}", "");
println!("Single <div> inside an <a> with text only:");
for el in doc.select("a div:only-text:only-child").iter() {
println!("{}", el.text().trim());
}
}