📄 tree.h
字号:
struct _xmlNode *prev; /* previous sibling link */ struct _xmlDoc *doc; /* the containing document */ /* End of common part */ xmlNs *ns; /* pointer to the associated namespace */ xmlChar *content; /* the content */ struct _xmlAttr *properties;/* properties list */ xmlNs *nsDef; /* namespace definitions on this node */};/** * XML_GET_CONTENT: * * Macro to extract the content pointer of a node. */#define XML_GET_CONTENT(n) \ ((n)->type == XML_ELEMENT_NODE ? NULL : (n)->content)/** * XML_GET_LINE: * * Macro to extract the line number of an element node. * This will work only if line numbering is activated by * calling xmlLineNumbersDefault(1) before parsing. */#define XML_GET_LINE(n) \ ((n)->type == XML_ELEMENT_NODE ? (int) (n)->content : 0)/** * xmlDoc: * * An XML document. */typedef struct _xmlDoc xmlDoc;typedef xmlDoc *xmlDocPtr;struct _xmlDoc { void *_private; /* application data */ xmlElementType type; /* XML_DOCUMENT_NODE, must be second ! */ char *name; /* name/filename/URI of the document */ struct _xmlNode *children; /* the document tree */ struct _xmlNode *last; /* last child link */ struct _xmlNode *parent; /* child->parent link */ struct _xmlNode *next; /* next sibling link */ struct _xmlNode *prev; /* previous sibling link */ struct _xmlDoc *doc; /* autoreference to itself */ /* End of common part */ int compression;/* level of zlib compression */ int standalone; /* standalone document (no external refs) */ struct _xmlDtd *intSubset; /* the document internal subset */ struct _xmlDtd *extSubset; /* the document external subset */ struct _xmlNs *oldNs; /* Global namespace, the old way */ const xmlChar *version; /* the XML version string */ const xmlChar *encoding; /* external initial encoding, if any */ void *ids; /* Hash table for ID attributes if any */ void *refs; /* Hash table for IDREFs attributes if any */ const xmlChar *URL; /* The URI for that document */ int charset; /* encoding of the in-memory content actually an xmlCharEncoding */};/** * xmlChildrenNode: * * Macro for compatibility naming layer with libxml1. */#ifndef xmlChildrenNode#define xmlChildrenNode children#endif/** * xmlRootNode: * * Macro for compatibility naming layer with libxml1. */#ifndef xmlRootNode#define xmlRootNode children#endif/* * Variables. */#if 0LIBXML_DLL_IMPORT extern int oldXMLWDcompatibility;/* maintain compatibility with old WD */LIBXML_DLL_IMPORT extern int xmlIndentTreeOutput; /* try to indent the tree dumps */LIBXML_DLL_IMPORT extern xmlBufferAllocationScheme xmlBufferAllocScheme; /* alloc scheme to use */LIBXML_DLL_IMPORT extern int xmlSaveNoEmptyTags; /* save empty tags as <empty></empty> */LIBXML_DLL_IMPORT extern int xmlDefaultBufferSize; /* default buffer size */#endif/* * Handling Buffers. */void xmlSetBufferAllocationScheme(xmlBufferAllocationScheme scheme);xmlBufferAllocationScheme xmlGetBufferAllocationScheme(void);xmlBufferPtr xmlBufferCreate (void);xmlBufferPtr xmlBufferCreateSize (size_t size);int xmlBufferResize (xmlBufferPtr buf, unsigned int size);void xmlBufferFree (xmlBufferPtr buf);int xmlBufferDump (FILE *file, xmlBufferPtr buf);void xmlBufferAdd (xmlBufferPtr buf, const xmlChar *str, int len);void xmlBufferAddHead (xmlBufferPtr buf, const xmlChar *str, int len);void xmlBufferCat (xmlBufferPtr buf, const xmlChar *str);void xmlBufferCCat (xmlBufferPtr buf, const char *str);int xmlBufferShrink (xmlBufferPtr buf, unsigned int len);int xmlBufferGrow (xmlBufferPtr buf, unsigned int len);void xmlBufferEmpty (xmlBufferPtr buf);const xmlChar* xmlBufferContent (const xmlBufferPtr buf);void xmlBufferSetAllocationScheme(xmlBufferPtr buf, xmlBufferAllocationScheme scheme);int xmlBufferLength (const xmlBufferPtr buf);/* * Creating/freeing new structures. */xmlDtdPtr xmlCreateIntSubset (xmlDocPtr doc, const xmlChar *name, const xmlChar *ExternalID, const xmlChar *SystemID);xmlDtdPtr xmlNewDtd (xmlDocPtr doc, const xmlChar *name, const xmlChar *ExternalID, const xmlChar *SystemID);xmlDtdPtr xmlGetIntSubset (xmlDocPtr doc);void xmlFreeDtd (xmlDtdPtr cur);xmlNsPtr xmlNewGlobalNs (xmlDocPtr doc, const xmlChar *href, const xmlChar *prefix);xmlNsPtr xmlNewNs (xmlNodePtr node, const xmlChar *href, const xmlChar *prefix);void xmlFreeNs (xmlNsPtr cur);void xmlFreeNsList (xmlNsPtr cur);xmlDocPtr xmlNewDoc (const xmlChar *version);void xmlFreeDoc (xmlDocPtr cur);xmlAttrPtr xmlNewDocProp (xmlDocPtr doc, const xmlChar *name, const xmlChar *value);xmlAttrPtr xmlNewProp (xmlNodePtr node, const xmlChar *name, const xmlChar *value);xmlAttrPtr xmlNewNsProp (xmlNodePtr node, xmlNsPtr ns, const xmlChar *name, const xmlChar *value);void xmlFreePropList (xmlAttrPtr cur);void xmlFreeProp (xmlAttrPtr cur);xmlAttrPtr xmlCopyProp (xmlNodePtr target, xmlAttrPtr cur);xmlAttrPtr xmlCopyPropList (xmlNodePtr target, xmlAttrPtr cur);xmlDtdPtr xmlCopyDtd (xmlDtdPtr dtd);xmlDocPtr xmlCopyDoc (xmlDocPtr doc, int recursive);/* * Creating new nodes. */xmlNodePtr xmlNewDocNode (xmlDocPtr doc, xmlNsPtr ns, const xmlChar *name, const xmlChar *content);xmlNodePtr xmlNewDocRawNode (xmlDocPtr doc, xmlNsPtr ns, const xmlChar *name, const xmlChar *content);xmlNodePtr xmlNewNode (xmlNsPtr ns, const xmlChar *name);xmlNodePtr xmlNewChild (xmlNodePtr parent, xmlNsPtr ns, const xmlChar *name, const xmlChar *content);xmlNodePtr xmlNewTextChild (xmlNodePtr parent, xmlNsPtr ns, const xmlChar *name, const xmlChar *content);xmlNodePtr xmlNewDocText (xmlDocPtr doc, const xmlChar *content);xmlNodePtr xmlNewText (const xmlChar *content);xmlNodePtr xmlNewPI (const xmlChar *name, const xmlChar *content);xmlNodePtr xmlNewDocTextLen (xmlDocPtr doc, const xmlChar *content, int len);xmlNodePtr xmlNewTextLen (const xmlChar *content, int len);xmlNodePtr xmlNewDocComment (xmlDocPtr doc, const xmlChar *content);xmlNodePtr xmlNewComment (const xmlChar *content);xmlNodePtr xmlNewCDataBlock (xmlDocPtr doc, const xmlChar *content, int len);xmlNodePtr xmlNewCharRef (xmlDocPtr doc, const xmlChar *name);xmlNodePtr xmlNewReference (xmlDocPtr doc, const xmlChar *name);xmlNodePtr xmlCopyNode (const xmlNodePtr node, int recursive);xmlNodePtr xmlDocCopyNode (xmlNodePtr node, xmlDocPtr doc, int recursive);xmlNodePtr xmlCopyNodeList (xmlNodePtr node);xmlNodePtr xmlNewDocFragment (xmlDocPtr doc);/* * Navigating. */long xmlGetLineNo (xmlNodePtr node);xmlChar * xmlGetNodePath (xmlNodePtr node);xmlNodePtr xmlDocGetRootElement (xmlDocPtr doc);xmlNodePtr xmlGetLastChild (xmlNodePtr parent);int xmlNodeIsText (xmlNodePtr node);int xmlIsBlankNode (xmlNodePtr node);/* * Changing the structure. */xmlNodePtr xmlDocSetRootElement (xmlDocPtr doc, xmlNodePtr root);void xmlNodeSetName (xmlNodePtr cur, const xmlChar *name);xmlNodePtr xmlAddChild (xmlNodePtr parent, xmlNodePtr cur);xmlNodePtr xmlAddChildList (xmlNodePtr parent, xmlNodePtr cur);xmlNodePtr xmlReplaceNode (xmlNodePtr old, xmlNodePtr cur);xmlNodePtr xmlAddSibling (xmlNodePtr cur, xmlNodePtr elem);xmlNodePtr xmlAddPrevSibling (xmlNodePtr cur, xmlNodePtr elem);xmlNodePtr xmlAddNextSibling (xmlNodePtr cur, xmlNodePtr elem);void xmlUnlinkNode (xmlNodePtr cur);xmlNodePtr xmlTextMerge (xmlNodePtr first, xmlNodePtr second);void xmlTextConcat (xmlNodePtr node, const xmlChar *content, int len);void xmlFreeNodeList (xmlNodePtr cur);void xmlFreeNode (xmlNodePtr cur);void xmlSetTreeDoc (xmlNodePtr tree, xmlDocPtr doc);void xmlSetListDoc (xmlNodePtr list, xmlDocPtr doc);/* * Namespaces. */xmlNsPtr xmlSearchNs (xmlDocPtr doc, xmlNodePtr node, const xmlChar *nameSpace);xmlNsPtr xmlSearchNsByHref (xmlDocPtr doc, xmlNodePtr node, const xmlChar *href);xmlNsPtr * xmlGetNsList (xmlDocPtr doc, xmlNodePtr node);void xmlSetNs (xmlNodePtr node, xmlNsPtr ns);xmlNsPtr xmlCopyNamespace (xmlNsPtr cur);xmlNsPtr xmlCopyNamespaceList (xmlNsPtr cur);/* * Changing the content. */xmlAttrPtr xmlSetProp (xmlNodePtr node, const xmlChar *name, const xmlChar *value);xmlChar * xmlGetProp (xmlNodePtr node, const xmlChar *name);xmlAttrPtr xmlHasProp (xmlNodePtr node, const xmlChar *name);xmlAttrPtr xmlHasNsProp (xmlNodePtr node, const xmlChar *name, const xmlChar *nameSpace);xmlAttrPtr xmlSetNsProp (xmlNodePtr node, xmlNsPtr ns, const xmlChar *name, const xmlChar *value);xmlChar * xmlGetNsProp (xmlNodePtr node, const xmlChar *name, const xmlChar *nameSpace);xmlNodePtr xmlStringGetNodeList (xmlDocPtr doc, const xmlChar *value);xmlNodePtr xmlStringLenGetNodeList (xmlDocPtr doc, const xmlChar *value, int len);xmlChar * xmlNodeListGetString (xmlDocPtr doc, xmlNodePtr list, int inLine);xmlChar * xmlNodeListGetRawString (xmlDocPtr doc, xmlNodePtr list, int inLine);void xmlNodeSetContent (xmlNodePtr cur, const xmlChar *content);void xmlNodeSetContentLen (xmlNodePtr cur, const xmlChar *content, int len);void xmlNodeAddContent (xmlNodePtr cur, const xmlChar *content);void xmlNodeAddContentLen (xmlNodePtr cur, const xmlChar *content, int len);xmlChar * xmlNodeGetContent (xmlNodePtr cur);xmlChar * xmlNodeGetLang (xmlNodePtr cur);void xmlNodeSetLang (xmlNodePtr cur, const xmlChar *lang);int xmlNodeGetSpacePreserve (xmlNodePtr cur);void xmlNodeSetSpacePreserve (xmlNodePtr cur, int val);xmlChar * xmlNodeGetBase (xmlDocPtr doc, xmlNodePtr cur);void xmlNodeSetBase (xmlNodePtr cur, xmlChar *uri);/* * Removing content. */int xmlRemoveProp (xmlAttrPtr cur);int xmlUnsetProp (xmlNodePtr node, const xmlChar *name);int xmlUnsetNsProp (xmlNodePtr node, xmlNsPtr ns, const xmlChar *name);/* * Internal, don't use. */#ifdef VMSvoid xmlBufferWriteXmlCHAR (xmlBufferPtr buf, const xmlChar *string);#define xmlBufferWriteCHAR xmlBufferWriteXmlCHAR#elsevoid xmlBufferWriteCHAR (xmlBufferPtr buf, const xmlChar *string);#endifvoid xmlBufferWriteChar (xmlBufferPtr buf, const char *string);void xmlBufferWriteQuotedString(xmlBufferPtr buf, const xmlChar *string);/* * Namespace handling. */int xmlReconciliateNs (xmlDocPtr doc, xmlNodePtr tree);/* * Saving. */void xmlDocDumpFormatMemory (xmlDocPtr cur, xmlChar **mem, int *size, int format);void xmlDocDumpMemory (xmlDocPtr cur, xmlChar **mem, int *size);void xmlDocDumpMemoryEnc (xmlDocPtr out_doc, xmlChar **doc_txt_ptr, int * doc_txt_len, const char *txt_encoding);void xmlDocDumpFormatMemoryEnc(xmlDocPtr out_doc, xmlChar **doc_txt_ptr, int * doc_txt_len, const char *txt_encoding, int format);int xmlDocDump (FILE *f, xmlDocPtr cur);void xmlElemDump (FILE *f, xmlDocPtr doc, xmlNodePtr cur);int xmlSaveFile (const char *filename, xmlDocPtr cur);int xmlSaveFormatFile (const char *filename, xmlDocPtr cur, int format);void xmlNodeDump (xmlBufferPtr buf, xmlDocPtr doc, xmlNodePtr cur, int level, int format);int xmlSaveFileTo (xmlOutputBufferPtr buf, xmlDocPtr cur, const char *encoding);int xmlSaveFormatFileTo (xmlOutputBufferPtr buf, xmlDocPtr cur, const char *encoding, int format);void xmlNodeDumpOutput (xmlOutputBufferPtr buf, xmlDocPtr doc, xmlNodePtr cur, int level, int format, const char *encoding);int xmlSaveFormatFileEnc (const char *filename, xmlDocPtr cur, const char *encoding, int format);int xmlSaveFileEnc (const char *filename, xmlDocPtr cur, const char *encoding);/* * Compression. */int xmlGetDocCompressMode (xmlDocPtr doc);void xmlSetDocCompressMode (xmlDocPtr doc, int mode);int xmlGetCompressMode (void);void xmlSetCompressMode (int mode);#ifdef __cplusplus}#endif#ifndef __XML_PARSER_H__#include <libxml/xmlmemory.h>#endif#endif /* __XML_TREE_H__ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -