[Kimchi-devel] [WIP PATCH 3/5] Allow to update XML attribute in "xml_item_update"

Aline Manera alinefm at linux.vnet.ibm.com
Tue Oct 21 18:59:15 UTC 2014


Reviewed-by: Aline Manera <alinefm at 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 at 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")
>   
>   




More information about the Kimchi-devel mailing list