se adiciona prueba para probar adicion en fragmentos

FossilOrigin-Name: 5094189dae307766ff8bb0869831a0245d4c092fdc6de8b5e7697d835a62c4d4
This commit is contained in:
bit4bit
2021-11-04 23:56:49 +00:00
parent 1602dd35e3
commit 18342b7e23
3 changed files with 56 additions and 3 deletions

View File

@@ -226,6 +226,8 @@ class FachoXML:
# crea jerarquia segun xpath indicado
parent = None
current_elem = self.root
node_tag = node_paths.pop(-1)
for node_path in node_paths:
node_expr = self.builder.match_expression(node_path)
node = self.builder.build_from_expression(node_path)
@@ -239,12 +241,20 @@ class FachoXML:
self.builder.append(current_elem, node)
current_elem = node
node_expr = self.builder.match_expression(node_tag)
node = self.builder.build_from_expression(node_tag)
child = self.builder.find_relative(current_elem, node_expr['path'], self.nsmap)
parent = current_elem
if child is not None:
current_elem = child
if parent == current_elem:
self.builder.append(parent, node)
return node
# se fuerza la adicion como un nuevo elemento
if append:
node_tag = node_paths[-1]
last_slibing = current_elem
for child in parent.getchildren():
if child.tag == node_tag:
last_slibing = child
@@ -259,6 +269,10 @@ class FachoXML:
except KeyError:
pass
if child is None:
self.builder.append(current_elem, node)
current_elem = node
return current_elem
def set_element_validator(self, xpath, validator = False):