diff --git a/Userland/Libraries/LibXML/Parser/Parser.cpp b/Userland/Libraries/LibXML/Parser/Parser.cpp index 4a6bce9614..f782b3f3ca 100644 --- a/Userland/Libraries/LibXML/Parser/Parser.cpp +++ b/Userland/Libraries/LibXML/Parser/Parser.cpp @@ -71,7 +71,9 @@ size_t Parser::s_debug_indent_level { 0 }; void Parser::append_node(NonnullOwnPtr node) { if (m_entered_node) { - m_entered_node->content.get().children.append(move(node)); + auto& entered_element = m_entered_node->content.get(); + entered_element.children.append(move(node)); + enter_node(*entered_element.children.last()); } else { m_root_node = move(node); enter_node(*m_root_node); @@ -620,7 +622,6 @@ ErrorOr Parser::parse_element() auto& node = *start_tag; auto& tag = node.content.get(); append_node(move(start_tag)); - enter_node(node); ScopeGuard quit { [&] { leave_node();