From eb471133a58defeb73ca5a46c617dfc22a5847f9 Mon Sep 17 00:00:00 2001 From: Halvor Date: Tue, 28 Oct 2025 17:38:52 +0100 Subject: [PATCH] Continue parsing instead of stopping on script in xml5ever. Changes `XmlParser::process` to function like the html equivelant. --- xml5ever/src/driver.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/xml5ever/src/driver.rs b/xml5ever/src/driver.rs index 061c1ce6..a21800b3 100644 --- a/xml5ever/src/driver.rs +++ b/xml5ever/src/driver.rs @@ -16,6 +16,7 @@ use crate::tendril; use crate::tendril::stream::{TendrilSink, Utf8LossyDecoder}; use crate::tendril::StrTendril; use markup5ever::buffer_queue::BufferQueue; +use markup5ever::TokenizerResult; /// All-encompasing parser setting structure. #[derive(Clone, Default)] @@ -64,7 +65,7 @@ impl TendrilSink for XmlParser { fn process(&mut self, t: StrTendril) { self.input_buffer.push_back(t); // FIXME: Properly support somehow. - let _ = self.tokenizer.feed(&self.input_buffer); + while let TokenizerResult::Script(_) = self.tokenizer.feed(&self.input_buffer) {} } // FIXME: Is it too noisy to report every character decoding error?