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
Branches
Tags
2 merge requests!181Release 0.9.0,!174XML Converter
Pipeline #54288 failed
...@@ -175,9 +175,11 @@ class XMLTagElement(StructureElement): ...@@ -175,9 +175,11 @@ class XMLTagElement(StructureElement):
Stores elements of an XML tree. Stores elements of an XML tree.
""" """
def __init__(self, name: str, element: lxml.etree.Element): def __init__(self, element: lxml.etree.Element,
super().__init__(name) tree: lxml.etree.ElementTree):
super().__init__(tree.getelementpath(element))
self.tag = element self.tag = element
self.tree = tree
class XMLTextNode(StructureElement): class XMLTextNode(StructureElement):
...@@ -185,7 +187,8 @@ class XMLTextNode(StructureElement): ...@@ -185,7 +187,8 @@ class XMLTextNode(StructureElement):
Stores text nodes of XML trees. 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. Initializes this XML text node.
...@@ -196,5 +199,27 @@ class XMLTextNode(StructureElement): ...@@ -196,5 +199,27 @@ class XMLTextNode(StructureElement):
- XMLTextNodes just have a text and the name is just for identifying the structure element. - 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. They can only be matched using the match entry in the XMLTextNodeConverter.
""" """
super().__init__(name) super().__init__(tree.getelementpath(element))
self.value = value 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.
Please register or to comment