Skip to content
Snippets Groups Projects
Commit 0694462d authored by Alexander Schlemmer's avatar Alexander Schlemmer
Browse files

ENH: added a new structure element for xml attributes

parent a6b41c7a
No related branches found
No related tags found
2 merge requests!181Release 0.9.0,!174XML Converter
Pipeline #54288 failed
......@@ -175,9 +175,11 @@ class XMLTagElement(StructureElement):
Stores elements of an XML tree.
"""
def __init__(self, name: str, element: lxml.etree.Element):
super().__init__(name)
def __init__(self, element: lxml.etree.Element,
tree: lxml.etree.ElementTree):
super().__init__(tree.getelementpath(element))
self.tag = element
self.tree = tree
class XMLTextNode(StructureElement):
......@@ -185,7 +187,8 @@ class XMLTextNode(StructureElement):
Stores text nodes of XML trees.
"""
def __init__(self, name: str, value: str):
def __init__(self, element: lxml.etree.Element,
tree: lxml.etree.ElementTree):
"""
Initializes this XML text node.
......@@ -196,5 +199,27 @@ class XMLTextNode(StructureElement):
- XMLTextNodes just have a text and the name is just for identifying the structure element.
They can only be matched using the match entry in the XMLTextNodeConverter.
"""
super().__init__(name)
self.value = value
super().__init__(tree.getelementpath(element))
self.tag = element
self.value = element.text
class XMLAttributeNode(StructureElement):
"""
Stores text nodes of XML trees.
"""
def __init__(self, element: lxml.etree.Element,
key: str,
tree: lxml.etree.ElementTree):
"""
Initializes this XML attribute node.
element: The xml tree element containing the attribute.
key: The key which identifies the attribute in the list of attributes.
tree: The tree containing the element which is used to set the node path.
"""
super().__init__(tree.getelementpath(element))
self.value = element.attrib[key]
self.key = key
self.tag = element
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment