diff --git a/include/asterisk/data.h b/include/asterisk/data.h
index cc92a0c10269cbfb4a3856bbd4d176adef1b6a88..54259e48c4ed418656686cd15f765ac9fd582b13 100644
--- a/include/asterisk/data.h
+++ b/include/asterisk/data.h
@@ -500,6 +500,7 @@ int ast_data_search_has_condition(const struct ast_data_search *search,
  */
 struct ast_data *ast_data_get(const struct ast_data_query *query);
 
+#ifdef HAVE_LIBXML2
 /*!
  * \brief Retrieve a subtree from the asterisk data API in XML format..
  * \param[in] query The query structure specifying what nodes to retrieve.
@@ -509,6 +510,7 @@ struct ast_data *ast_data_get(const struct ast_data_query *query);
  * \see ast_data_free, ast_data_get
  */
 struct ast_xml_doc *ast_data_get_xml(const struct ast_data_query *query);
+#endif
 
 /*!
  * \brief Release the allocated memory of a tree.
diff --git a/main/data.c b/main/data.c
index 1b12d451f5131f98a210e2abe65ba65ca8c4a066..c402c4fa68796e3b44b191366d26580bd7af024a 100644
--- a/main/data.c
+++ b/main/data.c
@@ -1845,6 +1845,7 @@ struct ast_data *ast_data_get(const struct ast_data_query *query)
 	return res;
 }
 
+#ifdef HAVE_LIBXML2
 /*!
  * \internal
  * \brief Helper function to move an ast_data tree to xml.
@@ -1944,6 +1945,7 @@ struct ast_xml_doc *ast_data_get_xml(const struct ast_data_query *query)
 
 	return doc;
 }
+#endif
 
 enum ast_data_type ast_data_retrieve_type(struct ast_data *node, const char *path)
 {