From 5567a37d05ea9ba9f124cbcd6a6adae070ca0f29 Mon Sep 17 00:00:00 2001 From: Asherah Connor Date: Mon, 20 Oct 2025 13:17:38 +1100 Subject: [PATCH] fix: XML::Node#replace returns all nodes reparented --- lib/nokogiri/xml/node.rb | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/nokogiri/xml/node.rb b/lib/nokogiri/xml/node.rb index 02e802d4df..a877c5736c 100644 --- a/lib/nokogiri/xml/node.rb +++ b/lib/nokogiri/xml/node.rb @@ -544,7 +544,10 @@ def replace(node_or_tags) node_or_tags = parent.coerce(node_or_tags) if node_or_tags.is_a?(XML::NodeSet) - node_or_tags.each { |n| add_previous_sibling(n) } + node_or_tags = Nokogiri::XML::NodeSet.new( + document, + node_or_tags.map { |n| add_previous_sibling(n) }, + ) unlink else replace_node(node_or_tags)