10#ifndef PCMK__CRM_COMMON_XML_COMPAT__H
11#define PCMK__CRM_COMMON_XML_COMPAT__H
14#include <libxml/tree.h>
15#include <libxml/xpath.h>
35static inline const char *
36crm_element_name(
const xmlNode *xml)
38 return (xml == NULL)? NULL : (
const char *) xml->name;
74 gboolean do_filter,
const char *
version);
80static inline int numXpathResults(xmlXPathObjectPtr xpathObj)
82 if ((xpathObj == NULL) || (xpathObj->nodesetval == NULL)) {
85 return xpathObj->nodesetval->nodeNr;
99 void (*helper)(xmlNode*,
void*),
void *user_data);
103xmlNode *
get_xpath_object(
const char *xpath, xmlNode *xml_obj,
int error_level);
Functionality for manipulating name/value pairs.
void dedupXpathResults(xmlXPathObjectPtr xpathObj)
void crm_foreach_xpath_result(xmlNode *xml, const char *xpath, void(*helper)(xmlNode *, void *), void *user_data)
char * calculate_operation_digest(xmlNode *input, const char *version)
const xmlChar * pcmkXmlStr
xmlNode * get_xpath_object(const char *xpath, xmlNode *xml_obj, int error_level)
void xml_accept_changes(xmlNode *xml)
xmlNode * getXpathResult(xmlXPathObjectPtr xpathObj, int index)
char * calculate_on_disk_digest(xmlNode *input)
void xml_calculate_changes(xmlNode *old_xml, xmlNode *new_xml)
gboolean cli_config_update(xmlNode **xml, int *best_version, gboolean to_logs)
void freeXpathObject(xmlXPathObjectPtr xpathObj)
bool xml_tracking_changes(xmlNode *xml)
void crm_xml_cleanup(void)
bool xml_document_dirty(xmlNode *xml)
char * calculate_xml_versioned_digest(xmlNode *input, gboolean sort, gboolean do_filter, const char *version)
void xml_track_changes(xmlNode *xml, const char *user, xmlNode *acl_source, bool enforce_acls)
void xml_calculate_significant_changes(xmlNode *old_xml, xmlNode *new_xml)
void free_xml(xmlNode *child)
void crm_xml_sanitize_id(char *id)
void pcmk_free_xml_subtree(xmlNode *xml)
xmlXPathObjectPtr xpath_search(const xmlNode *xml_top, const char *path)
xmlNode * copy_xml(xmlNode *src_node)
Defined string constants for XML element and attribute names.