summaryrefslogtreecommitdiff
path: root/src/common
diff options
context:
space:
mode:
Diffstat (limited to 'src/common')
-rw-r--r--src/common/xml.c37
-rw-r--r--src/common/xml.h5
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);