[][src]Trait soup::QueryBuilderExt

pub trait QueryBuilderExt {
    fn get_handle(&self) -> Handle;

    fn limit<'a>(&self, limit: usize) -> QueryBuilder<'a, (), ()> { ... }
fn tag<'a, P: Pattern>(
        &self,
        tag: P
    ) -> QueryBuilder<'a, TagQuery<P>, QueryWrapper<'a, (), ()>> { ... }
fn attr_name<'a, P>(
        &self,
        name: P
    ) -> QueryBuilder<'a, AttrQuery<P, bool>, QueryWrapper<'a, (), ()>>
    where
        P: Pattern
, { ... }
fn attr_value<'a, P>(
        &self,
        value: P
    ) -> QueryBuilder<'a, AttrQuery<bool, P>, QueryWrapper<'a, (), ()>>
    where
        P: Pattern
, { ... }
fn attr<'a, P, Q>(
        &self,
        name: P,
        value: Q
    ) -> QueryBuilder<'a, AttrQuery<P, Q>, QueryWrapper<'a, (), ()>>
    where
        P: Pattern,
        Q: Pattern
, { ... }
fn class<'a, P: Pattern>(
        &self,
        value: P
    ) -> QueryBuilder<'a, AttrQuery<&'static str, P>, QueryWrapper<'a, (), ()>> { ... }
fn recursive<'a>(&self, recursive: bool) -> QueryBuilder<'a, (), ()> { ... }
fn children(&self) -> NodeChildIter { ... }
fn parents(&self) -> NodeParentIter { ... } }

Adds the QueryBuilder constructor methods to the implementing type

Required methods

fn get_handle(&self) -> Handle

Retrieves the Handle that these methods will work on

Loading content...

Provided methods

fn limit<'a>(&self, limit: usize) -> QueryBuilder<'a, (), ()>

Starts building a Query, with limit limit

fn tag<'a, P: Pattern>(
    &self,
    tag: P
) -> QueryBuilder<'a, TagQuery<P>, QueryWrapper<'a, (), ()>>

Starts building a Query, with tag tag

fn attr_name<'a, P>(
    &self,
    name: P
) -> QueryBuilder<'a, AttrQuery<P, bool>, QueryWrapper<'a, (), ()>> where
    P: Pattern

Starts building a Query, with attr name name

fn attr_value<'a, P>(
    &self,
    value: P
) -> QueryBuilder<'a, AttrQuery<bool, P>, QueryWrapper<'a, (), ()>> where
    P: Pattern

Starts building a Query, with attr value value

fn attr<'a, P, Q>(
    &self,
    name: P,
    value: Q
) -> QueryBuilder<'a, AttrQuery<P, Q>, QueryWrapper<'a, (), ()>> where
    P: Pattern,
    Q: Pattern

Starts building a Query, with attr attr

fn class<'a, P: Pattern>(
    &self,
    value: P
) -> QueryBuilder<'a, AttrQuery<&'static str, P>, QueryWrapper<'a, (), ()>>

Starts building a Query, with class class

fn recursive<'a>(&self, recursive: bool) -> QueryBuilder<'a, (), ()>

Starts building a Query, with recursion set to recursive

fn children(&self) -> NodeChildIter

Returns an iterator over the node's children

Example

use soup::prelude::*;

let soup = Soup::new(r#"<ul><li>ONE</li><li>TWO</li><li>THREE</li></ul>"#);
let ul = soup.tag("ul").find().unwrap();
let li_text = ul.children()
                .filter(|node| node.is_element())
                .map(|node| node.text().to_string())
                .collect::<Vec<_>>();
assert_eq!(li_text, vec!["ONE".to_string(), "TWO".to_string(), "THREE".to_string()]);

fn parents(&self) -> NodeParentIter

Iterator over the parents of a node

Example

use soup::prelude::*;

let soup = Soup::new(r#"<div><p><b>FOO</b></p></div>"#);
let b = soup.tag("b").find().unwrap();
let parents = b.parents().map(|node| node.name().to_string()).collect::<Vec<_>>();
assert_eq!(parents, vec!["p".to_string(), "div".to_string(), "body".to_string(), "html".to_string(), "[document]".to_string()]);
Loading content...

Implementations on Foreign Types

impl QueryBuilderExt for Handle[src]

fn limit<'a>(&self, limit: usize) -> QueryBuilder<'a, (), ()>[src]

fn tag<'a, P: Pattern>(
    &self,
    tag: P
) -> QueryBuilder<'a, TagQuery<P>, QueryWrapper<'a, (), ()>>
[src]

fn attr_name<'a, P>(
    &self,
    name: P
) -> QueryBuilder<'a, AttrQuery<P, bool>, QueryWrapper<'a, (), ()>> where
    P: Pattern
[src]

fn attr_value<'a, P>(
    &self,
    value: P
) -> QueryBuilder<'a, AttrQuery<bool, P>, QueryWrapper<'a, (), ()>> where
    P: Pattern
[src]

fn attr<'a, P, Q>(
    &self,
    name: P,
    value: Q
) -> QueryBuilder<'a, AttrQuery<P, Q>, QueryWrapper<'a, (), ()>> where
    P: Pattern,
    Q: Pattern
[src]

fn class<'a, P: Pattern>(
    &self,
    value: P
) -> QueryBuilder<'a, AttrQuery<&'static str, P>, QueryWrapper<'a, (), ()>>
[src]

fn recursive<'a>(&self, recursive: bool) -> QueryBuilder<'a, (), ()>[src]

fn children(&self) -> NodeChildIter[src]

fn parents(&self) -> NodeParentIter[src]

Loading content...

Implementors

impl QueryBuilderExt for Soup[src]

fn limit<'a>(&self, limit: usize) -> QueryBuilder<'a, (), ()>[src]

fn tag<'a, P: Pattern>(
    &self,
    tag: P
) -> QueryBuilder<'a, TagQuery<P>, QueryWrapper<'a, (), ()>>
[src]

fn attr_name<'a, P>(
    &self,
    name: P
) -> QueryBuilder<'a, AttrQuery<P, bool>, QueryWrapper<'a, (), ()>> where
    P: Pattern
[src]

fn attr_value<'a, P>(
    &self,
    value: P
) -> QueryBuilder<'a, AttrQuery<bool, P>, QueryWrapper<'a, (), ()>> where
    P: Pattern
[src]

fn attr<'a, P, Q>(
    &self,
    name: P,
    value: Q
) -> QueryBuilder<'a, AttrQuery<P, Q>, QueryWrapper<'a, (), ()>> where
    P: Pattern,
    Q: Pattern
[src]

fn class<'a, P: Pattern>(
    &self,
    value: P
) -> QueryBuilder<'a, AttrQuery<&'static str, P>, QueryWrapper<'a, (), ()>>
[src]

fn recursive<'a>(&self, recursive: bool) -> QueryBuilder<'a, (), ()>[src]

fn children(&self) -> NodeChildIter[src]

fn parents(&self) -> NodeParentIter[src]

Loading content...