html: Add method to get root node of Html
This commit is contained in:
parent
21b644ac6a
commit
221e9c055c
@ -112,6 +112,16 @@ impl Html {
|
|||||||
self.nodes[parent].first_child = next_sibling;
|
self.nodes[parent].first_child = next_sibling;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Get the ID of the root node of the HTML.
|
||||||
|
pub(crate) fn root_id(&self) -> usize {
|
||||||
|
self.nodes[0].first_child.expect("html should always have a root node")
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Get the root node of the HTML.
|
||||||
|
pub(crate) fn root(&self) -> &Node {
|
||||||
|
&self.nodes[self.root_id()]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Default for Html {
|
impl Default for Html {
|
||||||
@ -252,9 +262,9 @@ impl Serialize for Html {
|
|||||||
{
|
{
|
||||||
match traversal_scope {
|
match traversal_scope {
|
||||||
TraversalScope::IncludeNode => {
|
TraversalScope::IncludeNode => {
|
||||||
let root = self.nodes[0].first_child.unwrap();
|
let root = self.root();
|
||||||
|
|
||||||
let mut next_child = self.nodes[root].first_child;
|
let mut next_child = root.first_child;
|
||||||
while let Some(child) = next_child {
|
while let Some(child) = next_child {
|
||||||
let child = &self.nodes[child];
|
let child = &self.nodes[child];
|
||||||
child.serialize(self, serializer)?;
|
child.serialize(self, serializer)?;
|
||||||
|
@ -96,8 +96,8 @@ impl SanitizerConfig {
|
|||||||
|
|
||||||
/// Clean the given HTML with this sanitizer.
|
/// Clean the given HTML with this sanitizer.
|
||||||
pub(crate) fn clean(self, html: &mut Html) {
|
pub(crate) fn clean(self, html: &mut Html) {
|
||||||
let root = html.nodes[0].first_child.unwrap();
|
let root = html.root();
|
||||||
let mut next_child = html.nodes[root].first_child;
|
let mut next_child = root.first_child;
|
||||||
|
|
||||||
while let Some(child) = next_child {
|
while let Some(child) = next_child {
|
||||||
next_child = html.nodes[child].next_sibling;
|
next_child = html.nodes[child].next_sibling;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user