#ifndef DYNAMIC_DEPTH_INTERNAL_XMPMETA_XML_SEARCH_H_ // NOLINT #define DYNAMIC_DEPTH_INTERNAL_XMPMETA_XML_SEARCH_H_ // NOLINT #include <libxml/tree.h> // Performs searches an XML tree. namespace dynamic_depth { namespace xmpmeta { namespace xml { // Depth-first search on the nodes in this XML doc. // Performs Depth first search on the child XML elements in order. // Returns the first child element with a matching node name. If not found, // returns a null pointer. xmlNodePtr DepthFirstSearch(const xmlDocPtr parent, const char* name); // Returns the first child element with a matching prefix and name. // If prefix is null or empty, this has the same effect as the method abouve. // Otherwise, the resulting node's namespace and its name must not be null. xmlNodePtr DepthFirstSearch(const xmlDocPtr parent, const char* prefix, const char* name); // Depth-first search on the parent, for a child element with the given name. // The element name excludes its prefix. // Returns a null pointer if no matching element is found. xmlNodePtr DepthFirstSearch(const xmlNodePtr parent, const char* name); // Returns the first child element with a matching prefix and name. // If prefix is null or empty, this has the same effect as the method abouve. // Otherwise, the resulting node's namespace and its name must not be null. xmlNodePtr DepthFirstSearch(const xmlNodePtr parent, const char* prefix, const char* name); } // namespace xml } // namespace xmpmeta } // namespace dynamic_depth #endif // DYNAMIC_DEPTH_INTERNAL_XMPMETA_XML_SEARCH_H_ // NOLINT