@@ -12,30 +12,30 @@ fn main() -> Result<(), BoxDynError> {
1212 // let ul = root.find("ul");
1313 // let nth_2n_child = ul.find(":nth-child(2n),:nth-child(1),:nth-child(n+8)");
1414 // println!("2n:{}", nth_2n_child.length());
15- let html = r##"
16- <!doctype html>
17- <html lang="utf-8">
18- <head></head>
19- <body>
20- <div id="id" name="#id">
21- <div class="class" name="#id .class">class-div</div>
22- <p>
23- p-tag
24- </p>
25- </div>
26- <div id="nested" name="#nested">
27- <div class="outer-div-1" name="#nested .outer-div-1">
28- <div class="inner-div-1-1" name="#nested .outer-div-1 .inner-div-1-1">inner-div-1-1</div>
29- <div class="inner-div-1-2" name="#nested .outer-div-1 .inner-div-1-2">inner-div-<span>1</span>-<span>2</span></div>
30- </div>
31- <div class="outer-div-2" name="#nested .outer-div-2">
32- <div class="inner-div-2-1" name="#nested .outer-div-2 .inner-div-2-1"></div>
33- <div class="inner-div-2-2" name="#nested .outer-div-2 .inner-div-2-1"></div>
34- </div>
35- </div>
36- </body>
37- </html>
38- "## ;
15+ // let html = r##"
16+ // <!doctype html>
17+ // <html lang="utf-8">
18+ // <head></head>
19+ // <body>
20+ // <div id="id" name="#id">
21+ // <div class="class" name="#id .class">class-div</div>
22+ // <p>
23+ // p-tag
24+ // </p>
25+ // </div>
26+ // <div id="nested" name="#nested">
27+ // <div class="outer-div-1" name="#nested .outer-div-1">
28+ // <div class="inner-div-1-1" name="#nested .outer-div-1 .inner-div-1-1">inner-div-1-1</div>
29+ // <div class="inner-div-1-2" name="#nested .outer-div-1 .inner-div-1-2">inner-div-<span>1</span>-<span>2</span></div>
30+ // </div>
31+ // <div class="outer-div-2" name="#nested .outer-div-2">
32+ // <div class="inner-div-2-1" name="#nested .outer-div-2 .inner-div-2-1"></div>
33+ // <div class="inner-div-2-2" name="#nested .outer-div-2 .inner-div-2-1"></div>
34+ // </div>
35+ // </div>
36+ // </body>
37+ // </html>
38+ // "##;
3939 // let div = root.find("div");
4040 // println!("div:{}", div.length());
4141 // let child_divs = div.find("div:nth-child(1)");
@@ -248,32 +248,50 @@ fn main() -> Result<(), BoxDynError> {
248248 // true
249249 // });
250250 // println!("{}", root.outer_html());
251+ // let html = r#"
252+ // <!doctype html>
253+ // <html>
254+ // <body>
255+ // <dl>
256+ // <dt>Title</dt>
257+ // <dd><span>item1</span></dd>
258+ // <dd class="item2"><span>item2</span></dd>
259+ // <dd class="item3">item3</dd>
260+ // </dl>
261+
262+ // </body>
263+ // </html>
264+ // "#;
265+ // let root = Vis::load(html)?;
266+ // let items = root.find("dl > *");
267+ // println!(
268+ // "items:{}, items:hasnotspan:{}",
269+ // items.length(),
270+ // items.has(":not(span)").length()
271+ // );
272+ // first.map(|_, ele| {
273+ // println!("{:?}", ele.tag_name());
274+ // });
275+ // println!("{}", first.get(0).unwrap().tag_name());
276+ // println!("root:{}", root.find("div").length());
277+ // println!("root:{:?}", root.find("#content").length());
251278 let html = r#"
252279 <!doctype html>
253280 <html>
254281 <body>
255- <dl>
256- <dt>Title</dt>
257- <dd><span>item1</span></dd>
258- <dd class="item2"><span>item2</span></dd>
259- <dd class="item3">item3</dd>
260- </dl>
261-
282+ <div>22<p></p></div>
283+ <div>1</div>
284+ <div>1</div>
262285 </body>
263286 </html>
264287 "# ;
265288 let root = Vis :: load ( html) ?;
266- let items = root. find ( "dl > *" ) ;
267- println ! (
268- "items:{}, items:hasnotspan:{}" ,
269- items. length( ) ,
270- items. has( ":not(span)" ) . length( )
271- ) ;
272- // first.map(|_, ele| {
273- // println!("{:?}", ele.tag_name());
274- // });
275- // println!("{}", first.get(0).unwrap().tag_name());
276- // println!("root:{}", root.find("div").length());
277- // println!("root:{:?}", root.find("#content").length());
289+ let div_no_has_p = root. find ( "div:not(:has(p))" ) ;
290+ println ! ( "div_no_has_p: {}" , div_no_has_p. text( ) ) ;
291+ let divs = root. find ( "div" ) ;
292+ let div_has_p = divs. has ( "p" ) ;
293+ println ! ( "div_has_p: {}" , div_has_p. text( ) ) ;
294+ let div_no_has_p = divs. not ( ":has(p)" ) ;
295+ println ! ( "div_no_has_p: {}" , div_no_has_p. text( ) ) ;
278296 Ok ( ( ) )
279297}
0 commit comments