diff options
Diffstat (limited to 'include/quickmedia/HtmlSearch.h')
-rw-r--r-- | include/quickmedia/HtmlSearch.h | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/include/quickmedia/HtmlSearch.h b/include/quickmedia/HtmlSearch.h new file mode 100644 index 0000000..e3bea33 --- /dev/null +++ b/include/quickmedia/HtmlSearch.h @@ -0,0 +1,31 @@ +#ifndef QUICKMEDIA_HTML_SEARCH_H +#define QUICKMEDIA_HTML_SEARCH_H + +#include "NodeSearch.h" + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct { + const void *doc; + const void *node; + void *text; +} QuickMediaHtmlNode; + +/* Returns NULL if attribute doesn't exist or if it doesn't have any value */ +const char* quickmedia_html_node_get_attribute_value(QuickMediaHtmlNode *self, const char *attribute_name); + +/* Returns StringView where data is NULL and size is 0 if node doesn't have any text */ +const QuickMediaStringView quickmedia_html_node_get_text(QuickMediaHtmlNode *self); + +/* @node is only valid within the callback function scope */ +typedef void (*QuickMediaHtmlSearchResultCallback)(QuickMediaHtmlNode *node, void *userdata); + +int quickmedia_html_find_nodes_xpath(const char *html_source, const char *xpath, QuickMediaHtmlSearchResultCallback result_callback, void *userdata); + +#ifdef __cplusplus +} +#endif + +#endif |