1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- #ifndef INCLUDED_XLSXIO_READ_SHAREDSTRINGS_H
- #define INCLUDED_XLSXIO_READ_SHAREDSTRINGS_H
- #include <stdint.h>
- #include <expat.h>
- #ifdef __cplusplus
- extern "C" {
- #endif
- struct sharedstringlist {
- XML_Char** strings;
- size_t numstrings;
- };
- struct sharedstringlist* sharedstringlist_create ();
- void sharedstringlist_destroy (struct sharedstringlist* sharedstrings);
- size_t sharedstringlist_size (struct sharedstringlist* sharedstrings);
- int sharedstringlist_add_buffer (struct sharedstringlist* sharedstrings, const XML_Char* data, size_t datalen);
- int sharedstringlist_add_string (struct sharedstringlist* sharedstrings, const XML_Char* data);
- const XML_Char* sharedstringlist_get (struct sharedstringlist* sharedstrings, size_t index);
- ////////////////////////////////////////////////////////////////////////
- struct shared_strings_callback_data {
- XML_Parser xmlparser;
- struct sharedstringlist* sharedstrings;
- int insst;
- int insi;
- int intext;
- XML_Char* text;
- size_t textlen;
- XML_Char* skiptag; //tag to skip
- size_t skiptagcount; //nesting level for current tag to skip
- XML_StartElementHandler skip_start; //start handler to set after skipping
- XML_EndElementHandler skip_end; //end handler to set after skipping
- XML_CharacterDataHandler skip_data; //data handler to set after skipping
- };
- void shared_strings_callback_data_initialize (struct shared_strings_callback_data* data, struct sharedstringlist* sharedstrings);
- void shared_strings_callback_data_cleanup (struct shared_strings_callback_data* data);
- void shared_strings_callback_skip_tag_start (void* callbackdata, const XML_Char* name, const XML_Char** atts);
- void shared_strings_callback_skip_tag_end (void* callbackdata, const XML_Char* name);
- void shared_strings_callback_find_sharedstringtable_start (void* callbackdata, const XML_Char* name, const XML_Char** atts);
- void shared_strings_callback_find_sharedstringtable_end (void* callbackdata, const XML_Char* name);
- void shared_strings_callback_find_shared_stringitem_start (void* callbackdata, const XML_Char* name, const XML_Char** atts);
- void shared_strings_callback_find_shared_stringitem_end (void* callbackdata, const XML_Char* name);
- void shared_strings_callback_find_shared_string_start (void* callbackdata, const XML_Char* name, const XML_Char** atts);
- void shared_strings_callback_find_shared_string_end (void* callbackdata, const XML_Char* name);
- void shared_strings_callback_string_data (void* callbackdata, const XML_Char* buf, int buflen);
- #ifdef __cplusplus
- }
- #endif
- #endif
|