@@ -47,7 +47,14 @@ def _generate_data_table(self, shape: list[str], xml_path: str, text_array: list
47
47
'node' : node
48
48
}
49
49
50
- def _handle_node (self , node : ET .Element , xml_path : str , node_name : str ):
50
+ def handle_node (self , node : ET .Element , xml_path : str , node_name : str ):
51
+ """
52
+ This method can be overridden to handle special nodes separately.
53
+
54
+ :param node: XML node Object
55
+ :param xml_path: Path in global XML-file to this node
56
+ :param node_name: Name of the Node
57
+ """
51
58
pass
52
59
53
60
def _add_metadata (self , key : str , val : any , node : ET .Element ):
@@ -73,7 +80,7 @@ def _read_node(self, node: ET.Element, xml_path: str = '#'):
73
80
new_path = 'Unknown'
74
81
local_name = ''
75
82
76
- self ._handle_node (child , xml_path , local_name )
83
+ self .handle_node (child , xml_path , local_name )
77
84
78
85
if text is not None and not self ._filter_data_rows (child , text , new_path ):
79
86
self ._add_metadata (new_path , text .strip (), node )
@@ -84,20 +91,11 @@ def _read_node(self, node: ET.Element, xml_path: str = '#'):
84
91
85
92
def prepare_tables (self ):
86
93
tables = []
87
- # xml_str = re.sub(r'\sxmlns\s*([:=])', r' xmlns_removed\g<1>', self.file.string)
88
94
self ._table = self .append_table (tables )
89
95
root = ET .XML (self .file .content )
90
- # self._read_node(root)
91
- # root = etree.XML(self.file.content)
92
-
93
- # Remove unused namespace declarations
94
- # ET.cleanup_namespaces(root)
95
-
96
96
self ._read_node (root )
97
-
98
97
self ._merge_tables (self ._data_tables , tables )
99
98
100
-
101
99
potential_tables = [x for k , x in self ._potential_data_tables .items () if len (x ['values' ]) > 1 ]
102
100
potential_tables .sort (key = lambda x : len (x ['values' ]))
103
101
self ._merge_tables (potential_tables , tables )
0 commit comments