Skip to content
Snippets Groups Projects

XML Converter

Merged Alexander Schlemmer requested to merge f-xml-converter into dev
All threads resolved!
2 files
+ 31
2
Compare changes
  • Side-by-side
  • Inline
Files
2
@@ -72,7 +72,30 @@ class XMLFileConverter(SimpleFileConverter):
class XMLTagConverter(Converter):
def create_children(self, generalStore: GeneralStore, element: StructureElement):
raise NotImplementedError()
if not isinstance(element, XMLTagElement):
raise TypeError("Element must be an instance of XMLTagElement.")
# The options text_as_children, attribs_as_children and
# tags_as_children are currently not implemented.
el_lst = []
if "xpath" in self.definition:
# in this case it does not make sense to use the other "children"-options:
# for opt in ("text_", "attribs_", "tags_"):
# if opt + "_as_children" in self.definition:
# raise RuntimeError("The option {} cannot be used when using"
# " xpath".format(opt))
# if xpath is present, use the xpath to generate children
children = element.xpath(self.definition["xpath"])
else:
# use the direct children of the node instead
children = list(element)
# if "text_as_children" in self.definition and self.definition["text_as_children"] == True:
# el_lst.append(XMLTextNode(element, element.tree))
# if "attribs_as_children" in self.definition and self.definition["attribs_as_children"] == True:
# # el_lst.append(XMLTextNode(element, element.tree))
for el in children:
el_lst.append(XMLTagElement(el, element.tree))
def typecheck(self, element: StructureElement):
"""
Loading