1 /*
2  * Summary: specific APIs to process HTML tree, especially serialization
3  * Description: this module implements a few function needed to process
4  *              tree in an HTML specific way.
5  *
6  * Copy: See Copyright for the status of this software.
7  *
8  * Author: Daniel Veillard
9  */
10 
11 #ifndef __HTML_TREE_H__
12 #define __HTML_TREE_H__
13 
14 #include <stdio.h>
15 #include <libxml/xmlversion.h>
16 #include <libxml/tree.h>
17 #include <libxml/HTMLparser.h>
18 
19 #ifdef LIBXML_HTML_ENABLED
20 
21 #ifdef __cplusplus
22 extern "C" {
23 #endif
24 
25 
26 /**
27  * HTML_TEXT_NODE:
28  *
29  * Macro. A text node in a HTML document is really implemented
30  * the same way as a text node in an XML document.
31  */
32 #define HTML_TEXT_NODE		XML_TEXT_NODE
33 /**
34  * HTML_ENTITY_REF_NODE:
35  *
36  * Macro. An entity reference in a HTML document is really implemented
37  * the same way as an entity reference in an XML document.
38  */
39 #define HTML_ENTITY_REF_NODE	XML_ENTITY_REF_NODE
40 /**
41  * HTML_COMMENT_NODE:
42  *
43  * Macro. A comment in a HTML document is really implemented
44  * the same way as a comment in an XML document.
45  */
46 #define HTML_COMMENT_NODE	XML_COMMENT_NODE
47 /**
48  * HTML_PRESERVE_NODE:
49  *
50  * Macro. A preserved node in a HTML document is really implemented
51  * the same way as a CDATA section in an XML document.
52  */
53 #define HTML_PRESERVE_NODE	XML_CDATA_SECTION_NODE
54 /**
55  * HTML_PI_NODE:
56  *
57  * Macro. A processing instruction in a HTML document is really implemented
58  * the same way as a processing instruction in an XML document.
59  */
60 #define HTML_PI_NODE		XML_PI_NODE
61 
62 XMLPUBFUN htmlDocPtr XMLCALL
63 		htmlNewDoc		(const xmlChar *URI,
64 					 const xmlChar *ExternalID);
65 XMLPUBFUN htmlDocPtr XMLCALL
66 		htmlNewDocNoDtD		(const xmlChar *URI,
67 					 const xmlChar *ExternalID);
68 XMLPUBFUN const xmlChar * XMLCALL
69 		htmlGetMetaEncoding	(htmlDocPtr doc);
70 XMLPUBFUN int XMLCALL
71 		htmlSetMetaEncoding	(htmlDocPtr doc,
72 					 const xmlChar *encoding);
73 #ifdef LIBXML_OUTPUT_ENABLED
74 XMLPUBFUN void XMLCALL
75 		htmlDocDumpMemory	(xmlDocPtr cur,
76 					 xmlChar **mem,
77 					 int *size);
78 XMLPUBFUN void XMLCALL
79 		htmlDocDumpMemoryFormat	(xmlDocPtr cur,
80 					 xmlChar **mem,
81 					 int *size,
82 					 int format);
83 XMLPUBFUN int XMLCALL
84 		htmlDocDump		(FILE *f,
85 					 xmlDocPtr cur);
86 XMLPUBFUN int XMLCALL
87 		htmlSaveFile		(const char *filename,
88 					 xmlDocPtr cur);
89 XMLPUBFUN int XMLCALL
90 		htmlNodeDump		(xmlBufferPtr buf,
91 					 xmlDocPtr doc,
92 					 xmlNodePtr cur);
93 XMLPUBFUN void XMLCALL
94 		htmlNodeDumpFile	(FILE *out,
95 					 xmlDocPtr doc,
96 					 xmlNodePtr cur);
97 XMLPUBFUN int XMLCALL
98 		htmlNodeDumpFileFormat	(FILE *out,
99 					 xmlDocPtr doc,
100 					 xmlNodePtr cur,
101 					 const char *encoding,
102 					 int format);
103 XMLPUBFUN int XMLCALL
104 		htmlSaveFileEnc		(const char *filename,
105 					 xmlDocPtr cur,
106 					 const char *encoding);
107 XMLPUBFUN int XMLCALL
108 		htmlSaveFileFormat	(const char *filename,
109 					 xmlDocPtr cur,
110 					 const char *encoding,
111 					 int format);
112 
113 XMLPUBFUN void XMLCALL
114 		htmlNodeDumpFormatOutput(xmlOutputBufferPtr buf,
115 					 xmlDocPtr doc,
116 					 xmlNodePtr cur,
117 					 const char *encoding,
118 					 int format);
119 XMLPUBFUN void XMLCALL
120 		htmlDocContentDumpOutput(xmlOutputBufferPtr buf,
121 					 xmlDocPtr cur,
122 					 const char *encoding);
123 XMLPUBFUN void XMLCALL
124 		htmlDocContentDumpFormatOutput(xmlOutputBufferPtr buf,
125 					 xmlDocPtr cur,
126 					 const char *encoding,
127 					 int format);
128 XMLPUBFUN void XMLCALL
129 		htmlNodeDumpOutput	(xmlOutputBufferPtr buf,
130 					 xmlDocPtr doc,
131 					 xmlNodePtr cur,
132 					 const char *encoding);
133 
134 #endif /* LIBXML_OUTPUT_ENABLED */
135 
136 XMLPUBFUN int XMLCALL
137 		htmlIsBooleanAttr	(const xmlChar *name);
138 
139 
140 #ifdef __cplusplus
141 }
142 #endif
143 
144 #endif /* LIBXML_HTML_ENABLED */
145 
146 #endif /* __HTML_TREE_H__ */
147 
148