pub struct Html {
pub errors: Vec<Cow<'static, str>>,
pub quirks_mode: QuirksMode,
pub tree: Tree<Node>,
}
Expand description
An HTML tree.
Parsing does not fail hard. Instead, the quirks_mode
is set and errors are added to the
errors
field. The tree
will still be populated as best as possible.
Implements the TreeSink
trait from the html5ever
crate, which allows HTML to be parsed.
Fields
errors: Vec<Cow<'static, str>>
Parse errors.
quirks_mode: QuirksMode
The quirks mode.
tree: Tree<Node>
The node tree.
Implementations
sourceimpl Html
impl Html
sourcepub fn new_document() -> Self
pub fn new_document() -> Self
Creates an empty HTML document.
sourcepub fn new_fragment() -> Self
pub fn new_fragment() -> Self
Creates an empty HTML fragment.
sourcepub fn parse_document(document: &str) -> Self
pub fn parse_document(document: &str) -> Self
Parses a string of HTML as a document.
This is a convenience method for the following:
use html5ever::driver::{self, ParseOpts};
use scraper::Html;
use tendril::TendrilSink;
let parser = driver::parse_document(Html::new_document(), ParseOpts::default());
let html = parser.one(document);
sourcepub fn parse_fragment(fragment: &str) -> Self
pub fn parse_fragment(fragment: &str) -> Self
Parses a string of HTML as a fragment.
sourcepub fn select<'a, 'b>(&'a self, selector: &'b Selector) -> Select<'a, 'b>ⓘNotable traits for Select<'a, 'b>impl<'a, 'b> Iterator for Select<'a, 'b> type Item = ElementRef<'a>;
pub fn select<'a, 'b>(&'a self, selector: &'b Selector) -> Select<'a, 'b>ⓘNotable traits for Select<'a, 'b>impl<'a, 'b> Iterator for Select<'a, 'b> type Item = ElementRef<'a>;
Returns an iterator over elements matching a selector.
sourcepub fn root_element(&self) -> ElementRef<'_>
pub fn root_element(&self) -> ElementRef<'_>
Returns the root <html>
element.
Trait Implementations
sourceimpl TreeSink for Html
impl TreeSink for Html
Note: does not support the <template>
element.
type Handle = NodeId
type Handle = NodeId
Handle
is a reference to a DOM node. The tree builder requires
that a Handle
implements Clone
to get another reference to
the same node. Read more
sourcefn parse_error(&mut self, msg: Cow<'static, str>)
fn parse_error(&mut self, msg: Cow<'static, str>)
Signal a parse error.
sourcefn set_quirks_mode(&mut self, mode: QuirksMode)
fn set_quirks_mode(&mut self, mode: QuirksMode)
Set the document’s quirks mode.
sourcefn get_document(&mut self) -> Self::Handle
fn get_document(&mut self) -> Self::Handle
Get a handle to the Document
node.
sourcefn same_node(&self, x: &Self::Handle, y: &Self::Handle) -> bool
fn same_node(&self, x: &Self::Handle, y: &Self::Handle) -> bool
Do two handles refer to the same node?
sourcefn elem_name(&self, target: &Self::Handle) -> ExpandedName<'_>
fn elem_name(&self, target: &Self::Handle) -> ExpandedName<'_>
What is the name of this element? Read more
sourcefn create_element(
&mut self,
name: QualName,
attrs: Vec<Attribute>,
_flags: ElementFlags
) -> Self::Handle
fn create_element(
&mut self,
name: QualName,
attrs: Vec<Attribute>,
_flags: ElementFlags
) -> Self::Handle
Create an element. Read more
sourcefn create_comment(&mut self, text: StrTendril) -> Self::Handle
fn create_comment(&mut self, text: StrTendril) -> Self::Handle
Create a comment node.
sourcefn append_doctype_to_document(
&mut self,
name: StrTendril,
public_id: StrTendril,
system_id: StrTendril
)
fn append_doctype_to_document(
&mut self,
name: StrTendril,
public_id: StrTendril,
system_id: StrTendril
)
Append a DOCTYPE
element to the Document
node.
sourcefn append(&mut self, parent: &Self::Handle, child: NodeOrText<Self::Handle>)
fn append(&mut self, parent: &Self::Handle, child: NodeOrText<Self::Handle>)
Append a node as the last child of the given node. If this would produce adjacent sibling text nodes, it should concatenate the text instead. Read more
sourcefn append_before_sibling(
&mut self,
sibling: &Self::Handle,
new_node: NodeOrText<Self::Handle>
)
fn append_before_sibling(
&mut self,
sibling: &Self::Handle,
new_node: NodeOrText<Self::Handle>
)
Append a node as the sibling immediately before the given node. Read more
sourcefn remove_from_parent(&mut self, target: &Self::Handle)
fn remove_from_parent(&mut self, target: &Self::Handle)
Detach the given node from its parent.
sourcefn reparent_children(&mut self, node: &Self::Handle, new_parent: &Self::Handle)
fn reparent_children(&mut self, node: &Self::Handle, new_parent: &Self::Handle)
Remove all the children from node and append them to new_parent.
sourcefn add_attrs_if_missing(&mut self, target: &Self::Handle, attrs: Vec<Attribute>)
fn add_attrs_if_missing(&mut self, target: &Self::Handle, attrs: Vec<Attribute>)
Add each attribute to the given element, if no attribute with that name already exists. The tree builder promises this will never be called with something else than an element. Read more
sourcefn get_template_contents(&mut self, target: &Self::Handle) -> Self::Handle
fn get_template_contents(&mut self, target: &Self::Handle) -> Self::Handle
Get a handle to a template’s template contents. The tree builder promises this will never be called with something else than a template element. Read more
sourcefn mark_script_already_started(&mut self, _node: &Self::Handle)
fn mark_script_already_started(&mut self, _node: &Self::Handle)
Mark a HTML <script>
as “already started”.
sourcefn create_pi(&mut self, target: StrTendril, data: StrTendril) -> Self::Handle
fn create_pi(&mut self, target: StrTendril, data: StrTendril) -> Self::Handle
Create a Processing Instruction node.
sourcefn append_based_on_parent_node(
&mut self,
element: &Self::Handle,
prev_element: &Self::Handle,
child: NodeOrText<Self::Handle>
)
fn append_based_on_parent_node(
&mut self,
element: &Self::Handle,
prev_element: &Self::Handle,
child: NodeOrText<Self::Handle>
)
When the insertion point is decided by the existence of a parent node of the element, we consider both possibilities and send the element which will be used if a parent node exists, along with the element to be used if there isn’t one. Read more
fn pop(&mut self, _node: &Self::Handle)
fn pop(&mut self, _node: &Self::Handle)
Indicate that a node was popped off the stack of open elements.
fn associate_with_form(
&mut self,
_target: &Self::Handle,
_form: &Self::Handle,
_nodes: (&Self::Handle, Option<&Self::Handle>)
)
fn associate_with_form(
&mut self,
_target: &Self::Handle,
_form: &Self::Handle,
_nodes: (&Self::Handle, Option<&Self::Handle>)
)
Associate the given form-associatable element with the form element
fn is_mathml_annotation_xml_integration_point(
&self,
_handle: &Self::Handle
) -> bool
fn is_mathml_annotation_xml_integration_point(
&self,
_handle: &Self::Handle
) -> bool
Returns true if the adjusted current node is an HTML integration point and the token is a start tag. Read more
fn set_current_line(&mut self, _line_number: u64)
fn set_current_line(&mut self, _line_number: u64)
Called whenever the line number changes.
fn complete_script(&mut self, _node: &Self::Handle) -> NextParserState
fn complete_script(&mut self, _node: &Self::Handle) -> NextParserState
Indicate that a script
element is complete.
impl Eq for Html
impl StructuralEq for Html
impl StructuralPartialEq for Html
Auto Trait Implementations
impl !RefUnwindSafe for Html
impl !Send for Html
impl !Sync for Html
impl Unpin for Html
impl UnwindSafe for Html
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcefn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more