1use parsercher;
2
3fn main() {
4 let html = r#"
5<!DOCTYPE html>
6<html>
7 <head>
8 <meta charset="UTF-8">
9 <title>sample html</title>
10 </head>
11 <body>
12
13 <ul id="list1" class="targetList">
14 <li class="key1">1-1</li>
15 <li class="key2"><span>1-2</span></li>
16 </ul>
17
18 <ul id="list2">
19 <li class="key1">2-1</li>
20 <li>2-2</li>
21 </ul>
22
23 <div>
24 <div>
25 <ul class="targetList">
26 <ul id="list3" class="targetList">
27 <li class="key1">3-1</li>
28 <li class="item">3-2</li>
29 <li class="key2">3-3</li>
30 </ul>
31 </ul>
32 </div>
33 </div>
34
35 <ul id="list4">
36 <li class="key1">4-1</li>
37 <li class="key2">4-2</li>
38 </ul>
39
40 </body>
41</html>
42"#;
43
44 let root_dom = parsercher::parse(&html).unwrap();
45
46 let needle = r#"
47<ul class="targetList">
48 <li class="key1"></li>
49 <li class="key2"></li>
50</ul>
51"#;
52 let needle_dom = parsercher::parse(&needle).unwrap();
53 let needle_dom = needle_dom.get_children().unwrap().get(0).unwrap();
55
56 if let Some(dom) = parsercher::search_dom(&root_dom, &needle_dom) {
57 parsercher::print_dom_tree(&dom);
58 }
59}