facho/facho.py: adiciona replacement_for para sustitucion.
FossilOrigin-Name: 5e9210afdf4577388a206310ded9abbcf129d02f3818671aba3aad1282726466
This commit is contained in:
parent
1a2bd38b35
commit
e13d8a333b
@ -82,6 +82,9 @@ class LXMLBuilder:
|
|||||||
def append(self, elem, child):
|
def append(self, elem, child):
|
||||||
elem.append(child)
|
elem.append(child)
|
||||||
|
|
||||||
|
def remove(self, elem):
|
||||||
|
elem.getparent().remove(elem)
|
||||||
|
|
||||||
def set_text(self, elem, text):
|
def set_text(self, elem, text):
|
||||||
elem.text = text
|
elem.text = text
|
||||||
|
|
||||||
@ -164,6 +167,11 @@ class FachoXML:
|
|||||||
def placeholder_for(self, xpath):
|
def placeholder_for(self, xpath):
|
||||||
return self.find_or_create_element(xpath)
|
return self.find_or_create_element(xpath)
|
||||||
|
|
||||||
|
def replacement_for(self, xpath, new_xpath, content, **attrs):
|
||||||
|
elem = self.get_element(xpath)
|
||||||
|
self.builder.remove(elem)
|
||||||
|
return self.set_element(new_xpath, content, **attrs)
|
||||||
|
|
||||||
def find_or_create_element(self, xpath, append=False):
|
def find_or_create_element(self, xpath, append=False):
|
||||||
"""
|
"""
|
||||||
@param xpath ruta xpath para crear o consultar de un solo elemendo
|
@param xpath ruta xpath para crear o consultar de un solo elemendo
|
||||||
|
@ -170,3 +170,11 @@ def test_facho_xml_fragment_relative():
|
|||||||
invoice = xml.fragment('./Invoice')
|
invoice = xml.fragment('./Invoice')
|
||||||
invoice.set_element('./Id', 1)
|
invoice.set_element('./Id', 1)
|
||||||
assert xml.tostring() == '<root><Invoice><Id>1</Id></Invoice></root>'
|
assert xml.tostring() == '<root><Invoice><Id>1</Id></Invoice></root>'
|
||||||
|
|
||||||
|
|
||||||
|
def test_facho_xml_replacement_for():
|
||||||
|
xml = facho.FachoXML('root')
|
||||||
|
xml.placeholder_for('./child/type')
|
||||||
|
xml.replacement_for('./child/type',
|
||||||
|
'./child/code', 'test')
|
||||||
|
assert xml.tostring() == '<root><child><code>test</code></child></root>'
|
||||||
|
Loading…
Reference in New Issue
Block a user