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