
Reviewed-by: Aline Manera <alinefm@linux.vnet.ibm.com> On 10/17/2014 05:26 AM, CrÃstian Viana wrote:
The function "xml_item_update" only updates the content of any given tag, filtered by an XPath expression. However, one might want to update one of the tag's attributes instead of its content.
Add an optional parameter to "xml_item_update" which sets the attribute name to be updated; if not set, the function will behave as before, i.e. update the tag's content.
Signed-off-by: CrÃstian Viana <vianac@linux.vnet.ibm.com> --- src/kimchi/xmlutils.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/src/kimchi/xmlutils.py b/src/kimchi/xmlutils.py index 8b19a20..ee56203 100644 --- a/src/kimchi/xmlutils.py +++ b/src/kimchi/xmlutils.py @@ -34,13 +34,18 @@ def xpath_get_text(xml, expr): return ret
-def xml_item_update(xml, xpath, value): +def xml_item_update(xml, xpath, value, attr=None): ElementTree.register_namespace(kimchi.model.utils.KIMCHI_NAMESPACE, kimchi.model.utils.KIMCHI_META_URL)
root = ElementTree.fromstring(xml) item = root.find(xpath) - item.text = value + + if attr is None: + item.text = value + else: + item.set(attr, value) + return ElementTree.tostring(root, encoding="utf-8")