📄 parser.h
字号:
* @name: The attribute name, including namespace prefix * @value: The attribute value * * Handle an attribute that has been read by the parser. * The default handling is to convert the attribute into an * DOM subtree and past it in a new xmlAttr element added to * the element. */typedef void (*attributeSAXFunc) (void *ctx, const xmlChar *name, const xmlChar *value);/** * referenceSAXFunc: * @ctx: the user data (XML parser context) * @name: The entity name * * Called when an entity reference is detected. */typedef void (*referenceSAXFunc) (void *ctx, const xmlChar *name);/** * charactersSAXFunc: * @ctx: the user data (XML parser context) * @ch: a xmlChar string * @len: the number of xmlChar * * Receiving some chars from the parser. */typedef void (*charactersSAXFunc) (void *ctx, const xmlChar *ch, int len);/** * ignorableWhitespaceSAXFunc: * @ctx: the user data (XML parser context) * @ch: a xmlChar string * @len: the number of xmlChar * * Receiving some ignorable whitespaces from the parser. * UNUSED: by default the DOM building will use characters. */typedef void (*ignorableWhitespaceSAXFunc) (void *ctx, const xmlChar *ch, int len);/** * processingInstructionSAXFunc: * @ctx: the user data (XML parser context) * @target: the target name * @data: the PI data's * * A processing instruction has been parsed. */typedef void (*processingInstructionSAXFunc) (void *ctx, const xmlChar *target, const xmlChar *data);/** * commentSAXFunc: * @ctx: the user data (XML parser context) * @value: the comment content * * A comment has been parsed. */typedef void (*commentSAXFunc) (void *ctx, const xmlChar *value);/** * cdataBlockSAXFunc: * @ctx: the user data (XML parser context) * @value: The pcdata content * @len: the block length * * Called when a pcdata block has been parsed. */typedef void (*cdataBlockSAXFunc) ( void *ctx, const xmlChar *value, int len);/** * warningSAXFunc: * @ctx: an XML parser context * @msg: the message to display/transmit * @...: extra parameters for the message display * * Display and format a warning messages, callback. */typedef void (*warningSAXFunc) (void *ctx, const char *msg, ...);/** * errorSAXFunc: * @ctx: an XML parser context * @msg: the message to display/transmit * @...: extra parameters for the message display * * Display and format an error messages, callback. */typedef void (*errorSAXFunc) (void *ctx, const char *msg, ...);/** * fatalErrorSAXFunc: * @ctx: an XML parser context * @msg: the message to display/transmit * @...: extra parameters for the message display * * Display and format fatal error messages, callback. */typedef void (*fatalErrorSAXFunc) (void *ctx, const char *msg, ...);/** * isStandaloneSAXFunc: * @ctx: the user data (XML parser context) * * Is this document tagged standalone? * * Returns 1 if true */typedef int (*isStandaloneSAXFunc) (void *ctx);/** * hasInternalSubsetSAXFunc: * @ctx: the user data (XML parser context) * * Does this document has an internal subset. * * Returns 1 if true */typedef int (*hasInternalSubsetSAXFunc) (void *ctx);/** * hasExternalSubsetSAXFunc: * @ctx: the user data (XML parser context) * * Does this document has an external subset? * * Returns 1 if true */typedef int (*hasExternalSubsetSAXFunc) (void *ctx);struct _xmlSAXHandler { internalSubsetSAXFunc internalSubset; isStandaloneSAXFunc isStandalone; hasInternalSubsetSAXFunc hasInternalSubset; hasExternalSubsetSAXFunc hasExternalSubset; resolveEntitySAXFunc resolveEntity; getEntitySAXFunc getEntity; entityDeclSAXFunc entityDecl; notationDeclSAXFunc notationDecl; attributeDeclSAXFunc attributeDecl; elementDeclSAXFunc elementDecl; unparsedEntityDeclSAXFunc unparsedEntityDecl; setDocumentLocatorSAXFunc setDocumentLocator; startDocumentSAXFunc startDocument; endDocumentSAXFunc endDocument; startElementSAXFunc startElement; endElementSAXFunc endElement; referenceSAXFunc reference; charactersSAXFunc characters; ignorableWhitespaceSAXFunc ignorableWhitespace; processingInstructionSAXFunc processingInstruction; commentSAXFunc comment; warningSAXFunc warning; errorSAXFunc error; fatalErrorSAXFunc fatalError; getParameterEntitySAXFunc getParameterEntity; cdataBlockSAXFunc cdataBlock; externalSubsetSAXFunc externalSubset; int initialized;};/** * xmlExternalEntityLoader: * @URL: The System ID of the resource requested * @ID: The Public ID of the resource requested * @context: the XML parser context * * External entity loaders types. * * Returns the entity input parser. */typedef xmlParserInputPtr (*xmlExternalEntityLoader) (const char *URL, const char *ID, xmlParserCtxtPtr context);/* * Global variables: just the default SAX interface tables and XML * version infos. */#if 0LIBXML_DLL_IMPORT extern const char *xmlParserVersion;#endif/*LIBXML_DLL_IMPORT extern xmlSAXLocator xmlDefaultSAXLocator;LIBXML_DLL_IMPORT extern xmlSAXHandler xmlDefaultSAXHandler;LIBXML_DLL_IMPORT extern xmlSAXHandler htmlDefaultSAXHandler;LIBXML_DLL_IMPORT extern xmlSAXHandler docbDefaultSAXHandler; *//* * Entity substitution default behavior. */#ifdef VMS/** * xmlSubstituteEntitiesDefaultValue: * * Global variable controlling the entity substitution default behavior. */LIBXML_DLL_IMPORT extern int xmlSubstituteEntitiesDefaultVal;#define xmlSubstituteEntitiesDefaultValue xmlSubstituteEntitiesDefaultVal#endif#if 0LIBXML_DLL_IMPORT extern int xmlSubstituteEntitiesDefaultValue;LIBXML_DLL_IMPORT extern int xmlGetWarningsDefaultValue;#endif#ifdef __cplusplus}#endif#include <libxml/encoding.h>#include <libxml/xmlIO.h>#include <libxml/globals.h>#ifdef __cplusplusextern "C" {#endif/* * Init/Cleanup */void xmlInitParser (void);void xmlCleanupParser (void);/* * Input functions */int xmlParserInputRead (xmlParserInputPtr in, int len);int xmlParserInputGrow (xmlParserInputPtr in, int len);/* * xmlChar handling */xmlChar * xmlStrdup (const xmlChar *cur);xmlChar * xmlStrndup (const xmlChar *cur, int len);xmlChar * xmlCharStrndup (const char *cur, int len);xmlChar * xmlCharStrdup (const char *cur);xmlChar * xmlStrsub (const xmlChar *str, int start, int len);const xmlChar * xmlStrchr (const xmlChar *str, xmlChar val);const xmlChar * xmlStrstr (const xmlChar *str, const xmlChar *val);const xmlChar * xmlStrcasestr (const xmlChar *str, xmlChar *val);int xmlStrcmp (const xmlChar *str1, const xmlChar *str2);int xmlStrncmp (const xmlChar *str1, const xmlChar *str2, int len);int xmlStrcasecmp (const xmlChar *str1, const xmlChar *str2);int xmlStrncasecmp (const xmlChar *str1, const xmlChar *str2, int len);int xmlStrEqual (const xmlChar *str1, const xmlChar *str2);int xmlStrlen (const xmlChar *str);xmlChar * xmlStrcat (xmlChar *cur, const xmlChar *add);xmlChar * xmlStrncat (xmlChar *cur, const xmlChar *add, int len);/* * Basic parsing Interfaces */xmlDocPtr xmlParseDoc (xmlChar *cur);xmlDocPtr xmlParseMemory (const char *buffer, int size);xmlDocPtr xmlParseFile (const char *filename);int xmlSubstituteEntitiesDefault(int val);int xmlKeepBlanksDefault (int val);void xmlStopParser (xmlParserCtxtPtr ctxt);int xmlPedanticParserDefault(int val);int xmlLineNumbersDefault (int val);/* * Recovery mode */xmlDocPtr xmlRecoverDoc (xmlChar *cur);xmlDocPtr xmlRecoverMemory (const char *buffer, int size);xmlDocPtr xmlRecoverFile (const char *filename);/* * Less common routines and SAX interfaces */int xmlParseDocument (xmlParserCtxtPtr ctxt);int xmlParseExtParsedEnt (xmlParserCtxtPtr ctxt);xmlDocPtr xmlSAXParseDoc (xmlSAXHandlerPtr sax, xmlChar *cur, int recovery);int xmlSAXUserParseFile (xmlSAXHandlerPtr sax, void *user_data, const char *filename);int xmlSAXUserParseMemory (xmlSAXHandlerPtr sax, void *user_data, const char *buffer, int size);xmlDocPtr xmlSAXParseMemory (xmlSAXHandlerPtr sax, const char *buffer, int size, int recovery);xmlDocPtr xmlSAXParseFile (xmlSAXHandlerPtr sax, const char *filename, int recovery);xmlDocPtr xmlSAXParseFileWithData (xmlSAXHandlerPtr sax, const char *filename, int recovery, void *data);xmlDocPtr xmlSAXParseEntity (xmlSAXHandlerPtr sax, const char *filename);xmlDocPtr xmlParseEntity (const char *filename);xmlDtdPtr xmlParseDTD (const xmlChar *ExternalID, const xmlChar *SystemID);xmlDtdPtr xmlSAXParseDTD (xmlSAXHandlerPtr sax, const xmlChar *ExternalID, const xmlChar *SystemID);xmlDtdPtr xmlIOParseDTD (xmlSAXHandlerPtr sax, xmlParserInputBufferPtr input, xmlCharEncoding enc);int xmlParseBalancedChunkMemory(xmlDocPtr doc, xmlSAXHandlerPtr sax, void *user_data, int depth, const xmlChar *string, xmlNodePtr *lst);int xmlParseExternalEntity (xmlDocPtr doc, xmlSAXHandlerPtr sax, void *user_data, int depth, const xmlChar *URL, const xmlChar *ID, xmlNodePtr *lst);int xmlParseCtxtExternalEntity(xmlParserCtxtPtr ctx, const xmlChar *URL, const xmlChar *ID, xmlNodePtr *lst);/* * Parser contexts handling. */void xmlInitParserCtxt (xmlParserCtxtPtr ctxt);void xmlClearParserCtxt (xmlParserCtxtPtr ctxt);void xmlFreeParserCtxt (xmlParserCtxtPtr ctxt);void xmlSetupParserForBuffer (xmlParserCtxtPtr ctxt, const xmlChar* buffer, const char *filename);xmlParserCtxtPtr xmlCreateDocParserCtxt (xmlChar *cur);/* * Reading/setting optional parsing features. */int xmlGetFeaturesList (int *len, const char **result);int xmlGetFeature (xmlParserCtxtPtr ctxt, const char *name, void *result);int xmlSetFeature (xmlParserCtxtPtr ctxt, const char *name, void *value);/* * Interfaces for the Push mode. */xmlParserCtxtPtr xmlCreatePushParserCtxt(xmlSAXHandlerPtr sax, void *user_data, const char *chunk, int size, const char *filename);int xmlParseChunk (xmlParserCtxtPtr ctxt, const char *chunk, int size, int terminate);/* * Special I/O mode. */xmlParserCtxtPtr xmlCreateIOParserCtxt (xmlSAXHandlerPtr sax, void *user_data, xmlInputReadCallback ioread, xmlInputCloseCallback ioclose, void *ioctx, xmlCharEncoding enc);xmlParserInputPtr xmlNewIOInputStream (xmlParserCtxtPtr ctxt, xmlParserInputBufferPtr input, xmlCharEncoding enc);/* * Node infos. */const xmlParserNodeInfo* xmlParserFindNodeInfo (const xmlParserCtxtPtr ctxt, const xmlNodePtr node);void xmlInitNodeInfoSeq (xmlParserNodeInfoSeqPtr seq);void xmlClearNodeInfoSeq (xmlParserNodeInfoSeqPtr seq);unsigned long xmlParserFindNodeInfoIndex(const xmlParserNodeInfoSeqPtr seq, const xmlNodePtr node);void xmlParserAddNodeInfo (xmlParserCtxtPtr ctxt, const xmlParserNodeInfoPtr info);/* * External entities handling actually implemented in xmlIO. */void xmlSetExternalEntityLoader(xmlExternalEntityLoader f);xmlExternalEntityLoader xmlGetExternalEntityLoader(void);xmlParserInputPtr xmlLoadExternalEntity (const char *URL, const char *ID, xmlParserCtxtPtr ctxt);#ifdef __cplusplus}#endif#endif /* __XML_PARSER_H__ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -