From 0ddc150f3bba52dcf2c43f19faf7fc267abd9593 Mon Sep 17 00:00:00 2001
From: Alexander Schlemmer <a.schlemmer@indiscale.com>
Date: Thu, 22 Aug 2024 21:38:30 +0200
Subject: [PATCH] ENH: implemented child generation using xpath

---
 src/caoscrawler/xml_converter.py | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/src/caoscrawler/xml_converter.py b/src/caoscrawler/xml_converter.py
index 75116ef0..b01d92e7 100644
--- a/src/caoscrawler/xml_converter.py
+++ b/src/caoscrawler/xml_converter.py
@@ -75,7 +75,15 @@ class XMLTagConverter(Converter):
         if not isinstance(element, XMLTagElement):
             raise TypeError("Element must be an instance of XMLTagElement.")
 
-        nsmap = self.definition["nsmap"]
+        # Get the namespace map from the element:
+        nsmap = element.tag.nsmap
+        # The default name of the default namespace is "default".
+        # You can overwrite it using the attribute "default_namespace" in the converter definition:
+        default_namespace = self.definition.get("default_namespace", "default")
+        if None in nsmap:
+            nsmap[default_namespace] = nsmap[None]
+            del nsmap[None]
+
         xpath = self.definition.get("xpath", "child::*")
         children = element.tag.xpath(xpath, namespaces=nsmap)
         el_lst = []
-- 
GitLab