diff options
Diffstat (limited to 'src/common')
-rw-r--r-- | src/common/xml.c | 37 | ||||
-rw-r--r-- | src/common/xml.h | 5 |
2 files changed, 39 insertions, 3 deletions
diff --git a/src/common/xml.c b/src/common/xml.c index eb450e0..a90bc65 100644 --- a/src/common/xml.c +++ b/src/common/xml.c @@ -878,7 +878,7 @@ bool add_content_to_node(xmlDocPtr xdoc, xmlXPathContextPtr context, const char * * ******************************************************************************/ -bool add_string_attribute_to_node(xmlNodePtr node, const char *name, const char *value) +bool _add_string_attribute_to_node(xmlNodePtr node, const char *name, const char *value) { xmlAttrPtr attrib; /* Attribut créé et en place */ @@ -891,6 +891,39 @@ bool add_string_attribute_to_node(xmlNodePtr node, const char *name, const char /****************************************************************************** * * +* Paramètres : xdoc = structure XML chargée. * +* context = contexte à utiliser pour les recherches. * +* path = chemin d'accès au noeud visé. * +* name = nom de la propriété à créer. * +* value = chaîne de caractère à placer. * +* * +* Description : Ajoute une propriété à un noeud existant donné. * +* * +* Retour : true en cas de succès, false sinon. * +* * +* Remarques : - * +* * +******************************************************************************/ + +bool add_string_attribute_to_node(xmlDocPtr xdoc, xmlXPathContextPtr context, const char *path, const char *name, const char *value) +{ + xmlNodePtr node; /* Noeud à modifier */ + xmlAttrPtr attrib; /* Attribut créé et en place */ + + if (value == NULL) return true; + + node = ensure_node_exist(xdoc, context, path); + if (node == NULL) return false; + + attrib = xmlSetProp(node, BAD_CAST name, BAD_CAST value); + + return (attrib != NULL); + +} + + +/****************************************************************************** +* * * Paramètres : node = noeud dont le contenu est à mettre à jour. * * name = nom de la propriété à créer. * * value = valeur numérique à placer. * @@ -909,6 +942,6 @@ bool add_long_attribute_to_node(xmlNodePtr node, const char *name, long value) snprintf(tmp, 11, "%ld", value); - return add_string_attribute_to_node(node, name, tmp); + return _add_string_attribute_to_node(node, name, tmp); } diff --git a/src/common/xml.h b/src/common/xml.h index a555f56..988a6d7 100644 --- a/src/common/xml.h +++ b/src/common/xml.h @@ -124,7 +124,10 @@ xmlNodePtr ensure_node_exist(xmlDocPtr, xmlXPathContextPtr, const char *); bool add_content_to_node(xmlDocPtr, xmlXPathContextPtr, const char *, const char *); /* Ajoute une propriété à un noeud existant donné. */ -bool add_string_attribute_to_node(xmlNodePtr, const char *, const char *); +bool _add_string_attribute_to_node(xmlNodePtr, const char *, const char *); + +/* Ajoute une propriété à un noeud existant donné. */ +bool add_string_attribute_to_node(xmlDocPtr, xmlXPathContextPtr, const char *, const char *, const char *); /* Ajoute une propriété à un noeud existant donné. */ bool add_long_attribute_to_node(xmlNodePtr, const char *, long); |