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 int XMLCALL
79 		htmlDocDump		(FILE *f,
80 					 xmlDocPtr cur);
81 XMLPUBFUN int XMLCALL
82 		htmlSaveFile		(const char *filename,
83 					 xmlDocPtr cur);
84 XMLPUBFUN int XMLCALL
85 		htmlNodeDump		(xmlBufferPtr buf,
86 					 xmlDocPtr doc,
87 					 xmlNodePtr cur);
88 XMLPUBFUN void XMLCALL
89 		htmlNodeDumpFile	(FILE *out,
90 					 xmlDocPtr doc,
91 					 xmlNodePtr cur);
92 XMLPUBFUN int XMLCALL
93 		htmlNodeDumpFileFormat	(FILE *out,
94 					 xmlDocPtr doc,
95 					 xmlNodePtr cur,
96 					 const char *encoding,
97 					 int format);
98 XMLPUBFUN int XMLCALL
99 		htmlSaveFileEnc		(const char *filename,
100 					 xmlDocPtr cur,
101 					 const char *encoding);
102 XMLPUBFUN int XMLCALL
103 		htmlSaveFileFormat	(const char *filename,
104 					 xmlDocPtr cur,
105 					 const char *encoding,
106 					 int format);
107 
108 XMLPUBFUN void XMLCALL
109 		htmlNodeDumpFormatOutput(xmlOutputBufferPtr buf,
110 					 xmlDocPtr doc,
111 					 xmlNodePtr cur,
112 					 const char *encoding,
113 					 int format);
114 XMLPUBFUN void XMLCALL
115 		htmlDocContentDumpOutput(xmlOutputBufferPtr buf,
116 					 xmlDocPtr cur,
117 					 const char *encoding);
118 XMLPUBFUN void XMLCALL
119 		htmlDocContentDumpFormatOutput(xmlOutputBufferPtr buf,
120 					 xmlDocPtr cur,
121 					 const char *encoding,
122 					 int format);
123 XMLPUBFUN void XMLCALL
124 		htmlNodeDumpOutput	(xmlOutputBufferPtr buf,
125 					 xmlDocPtr doc,
126 					 xmlNodePtr cur,
127 					 const char *encoding);
128 
129 #endif /* LIBXML_OUTPUT_ENABLED */
130 
131 XMLPUBFUN int XMLCALL
132 		htmlIsBooleanAttr	(const xmlChar *name);
133 
134 
135 #ifdef __cplusplus
136 }
137 #endif
138 
139 #endif /* LIBXML_HTML_ENABLED */
140 
141 #endif /* __HTML_TREE_H__ */
142 
143