pub struct DomTree {
pub nodes: Vec<Node>,
}
Fields§
§nodes: Vec<Node>
Implementations§
Source§impl DomTree
impl DomTree
Sourcepub fn new<L, P>(html: &str) -> Result<Self, ParserError>where
L: LexerTrait,
P: ParserTrait,
pub fn new<L, P>(html: &str) -> Result<Self, ParserError>where
L: LexerTrait,
P: ParserTrait,
Examples found in repository?
examples/example_2.rs (line 6)
3fn main() {
4 let html = r#"<div id="main"><p>Hello</p></div>"#;
5
6 match DomTree::new::<Lexer, Parser>(html) {
7 Ok(dom) => {
8 if let Some(container) = dom.get_by_id("main") {
9 println!("Node id='main' {:?}", container);
10 } else {
11 println!("Id not found");
12 }
13 }
14 Err(e) => println!("Erreur de parsing : {:?}", e),
15 }
16}
More examples
examples/example_1.rs (line 37)
7fn main() {
8 let html = r#"
9 <html lang="en">
10 <head>
11 <meta charset="UTF-8" />
12 <meta name="viewport" content="width=device-width, initial-scale=1.0" />
13 <title>Document</title>
14 </head>
15 <body id="container">
16 ok ceci est un texte
17 <a href="2" id="l1">link1</a>
18 <a href="1">link2</a>
19 <form action="d" method="get">
20 <input type="text" name="name" />
21 </form>
22 </body>
23 </html>"#;
24
25 let mut lexer = Lexer::new(html);
26 let tokens = lexer.tokenize();
27
28 // for token in tokens.clone() {
29 // println!("{:?}", token);
30 // }
31
32 let mut parser = Parser::new(tokens);
33 let parsed = parser.parse();
34
35 println!("{:#?}", parsed);
36
37 match DomTree::new::<Lexer, Parser>(html) {
38 Ok(dom) => {
39 if let Some(container) = dom.get_by_id("container") {
40 println!("Node id='container' {:?}", container);
41 if let Some(l1) = container.get_by_id("l1") {
42 println!("Node id='l1' {:?}", l1);
43 }
44 } else {
45 println!("Id not found");
46 }
47 }
48 Err(e) => println!("Erreur de parsing : {:?}", e),
49 }
50}
Sourcepub fn get_by_id(&self, id_value: &str) -> Option<&ElementNode>
pub fn get_by_id(&self, id_value: &str) -> Option<&ElementNode>
Examples found in repository?
examples/example_2.rs (line 8)
3fn main() {
4 let html = r#"<div id="main"><p>Hello</p></div>"#;
5
6 match DomTree::new::<Lexer, Parser>(html) {
7 Ok(dom) => {
8 if let Some(container) = dom.get_by_id("main") {
9 println!("Node id='main' {:?}", container);
10 } else {
11 println!("Id not found");
12 }
13 }
14 Err(e) => println!("Erreur de parsing : {:?}", e),
15 }
16}
More examples
examples/example_1.rs (line 39)
7fn main() {
8 let html = r#"
9 <html lang="en">
10 <head>
11 <meta charset="UTF-8" />
12 <meta name="viewport" content="width=device-width, initial-scale=1.0" />
13 <title>Document</title>
14 </head>
15 <body id="container">
16 ok ceci est un texte
17 <a href="2" id="l1">link1</a>
18 <a href="1">link2</a>
19 <form action="d" method="get">
20 <input type="text" name="name" />
21 </form>
22 </body>
23 </html>"#;
24
25 let mut lexer = Lexer::new(html);
26 let tokens = lexer.tokenize();
27
28 // for token in tokens.clone() {
29 // println!("{:?}", token);
30 // }
31
32 let mut parser = Parser::new(tokens);
33 let parsed = parser.parse();
34
35 println!("{:#?}", parsed);
36
37 match DomTree::new::<Lexer, Parser>(html) {
38 Ok(dom) => {
39 if let Some(container) = dom.get_by_id("container") {
40 println!("Node id='container' {:?}", container);
41 if let Some(l1) = container.get_by_id("l1") {
42 println!("Node id='l1' {:?}", l1);
43 }
44 } else {
45 println!("Id not found");
46 }
47 }
48 Err(e) => println!("Erreur de parsing : {:?}", e),
49 }
50}
pub fn get_all_by_id(&self, id_value: &str) -> Vec<&ElementNode>
pub fn get_by_class(&self, value: &str) -> Option<&ElementNode>
pub fn get_all_by_class(&self, value: &str) -> Vec<&ElementNode>
pub fn get_by_tag_name(&self, tag_name: &str) -> Option<&ElementNode>
pub fn get_all_by_tag_name(&self, tag_name: &str) -> Vec<&ElementNode>
pub fn get_by_attr( &self, attributes_name: &str, attributes_value: &str, ) -> Option<&ElementNode>
pub fn get_all_by_attr( &self, attributes_name: &str, attributes_value: &str, ) -> Vec<&ElementNode>
Auto Trait Implementations§
impl Freeze for DomTree
impl RefUnwindSafe for DomTree
impl Send for DomTree
impl Sync for DomTree
impl Unpin for DomTree
impl UnwindSafe for DomTree
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more