From c5e483708bd1bf70bf6a46468fa9354790dfd432 Mon Sep 17 00:00:00 2001
From: "i.nueske" <i.nueske@indiscale.com>
Date: Sat, 16 Nov 2024 12:39:40 +0100
Subject: [PATCH] BUG: Container.to_xml() now removes noscript elements to
 ensure compatibility with from_xml

---
 src/linkahead/common/models.py | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/src/linkahead/common/models.py b/src/linkahead/common/models.py
index 1dbeb802..0dee8239 100644
--- a/src/linkahead/common/models.py
+++ b/src/linkahead/common/models.py
@@ -3284,6 +3284,7 @@ class Container(list):
 
         if add_to_element is None:
             add_to_element = etree.Element("Entities")
+        noscript_in_supplied_xml = list(add_to_element.iter("noscript"))
 
         for m in self.messages:
             add_to_element.append(m.to_xml())
@@ -3300,6 +3301,11 @@ class Container(list):
                 elem = e.to_xml()
             add_to_element.append(elem)
 
+        # remove noscript elements added by this function
+        for elem in list(add_to_element.iter("noscript")):
+            if elem not in noscript_in_supplied_xml:
+                elem.getparent().remove(elem)
+
         return add_to_element
 
     def get_errors(self):
-- 
GitLab