blob: 157aa67074d8356848cc8138108fd7567c2898b6 [file] [log] [blame]
Owen Taylor3473f882001-02-23 17:55:21 +00001/*
Daniel Veillardbe586972003-11-18 20:56:51 +00002 * 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.
Owen Taylor3473f882001-02-23 17:55:21 +00005 *
Daniel Veillardbe586972003-11-18 20:56:51 +00006 * Copy: See Copyright for the status of this software.
Owen Taylor3473f882001-02-23 17:55:21 +00007 *
Daniel Veillardbe586972003-11-18 20:56:51 +00008 * Author: Daniel Veillard
Owen Taylor3473f882001-02-23 17:55:21 +00009 */
10
11#ifndef __HTML_TREE_H__
12#define __HTML_TREE_H__
13
14#include <stdio.h>
Igor Zlatkovic76874e42003-08-25 09:05:12 +000015#include <libxml/xmlversion.h>
Owen Taylor3473f882001-02-23 17:55:21 +000016#include <libxml/tree.h>
17#include <libxml/HTMLparser.h>
18
19
20#ifdef __cplusplus
21extern "C" {
22#endif
23
Daniel Veillardc084e472002-08-12 13:27:28 +000024
Daniel Veillardbed7b052001-05-19 14:59:49 +000025/**
26 * HTML_TEXT_NODE:
27 *
Daniel Veillard61f26172002-03-12 18:46:39 +000028 * Macro. A text node in a HTML document is really implemented
Daniel Veillardbed7b052001-05-19 14:59:49 +000029 * the same way as a text node in an XML document.
30 */
Owen Taylor3473f882001-02-23 17:55:21 +000031#define HTML_TEXT_NODE XML_TEXT_NODE
Daniel Veillardbed7b052001-05-19 14:59:49 +000032/**
33 * HTML_ENTITY_REF_NODE:
34 *
Daniel Veillard61f26172002-03-12 18:46:39 +000035 * Macro. An entity reference in a HTML document is really implemented
Daniel Veillardbed7b052001-05-19 14:59:49 +000036 * the same way as an entity reference in an XML document.
37 */
Owen Taylor3473f882001-02-23 17:55:21 +000038#define HTML_ENTITY_REF_NODE XML_ENTITY_REF_NODE
Daniel Veillardbed7b052001-05-19 14:59:49 +000039/**
40 * HTML_COMMENT_NODE:
41 *
Daniel Veillard61f26172002-03-12 18:46:39 +000042 * Macro. A comment in a HTML document is really implemented
Daniel Veillardbed7b052001-05-19 14:59:49 +000043 * the same way as a comment in an XML document.
44 */
Owen Taylor3473f882001-02-23 17:55:21 +000045#define HTML_COMMENT_NODE XML_COMMENT_NODE
Daniel Veillardbed7b052001-05-19 14:59:49 +000046/**
47 * HTML_PRESERVE_NODE:
48 *
Daniel Veillard61f26172002-03-12 18:46:39 +000049 * Macro. A preserved node in a HTML document is really implemented
Daniel Veillardbed7b052001-05-19 14:59:49 +000050 * the same way as a CDATA section in an XML document.
51 */
Owen Taylor3473f882001-02-23 17:55:21 +000052#define HTML_PRESERVE_NODE XML_CDATA_SECTION_NODE
Daniel Veillardbed7b052001-05-19 14:59:49 +000053/**
54 * HTML_PI_NODE:
55 *
Daniel Veillard61f26172002-03-12 18:46:39 +000056 * Macro. A processing instruction in a HTML document is really implemented
Daniel Veillardbed7b052001-05-19 14:59:49 +000057 * the same way as a processing instruction in an XML document.
58 */
Daniel Veillard7533cc82001-04-24 15:52:00 +000059#define HTML_PI_NODE XML_PI_NODE
Owen Taylor3473f882001-02-23 17:55:21 +000060
Igor Zlatkovic76874e42003-08-25 09:05:12 +000061XMLPUBFUN htmlDocPtr XMLCALL
62 htmlNewDoc (const xmlChar *URI,
Owen Taylor3473f882001-02-23 17:55:21 +000063 const xmlChar *ExternalID);
Igor Zlatkovic76874e42003-08-25 09:05:12 +000064XMLPUBFUN htmlDocPtr XMLCALL
65 htmlNewDocNoDtD (const xmlChar *URI,
Owen Taylor3473f882001-02-23 17:55:21 +000066 const xmlChar *ExternalID);
Igor Zlatkovic76874e42003-08-25 09:05:12 +000067XMLPUBFUN const xmlChar * XMLCALL
68 htmlGetMetaEncoding (htmlDocPtr doc);
69XMLPUBFUN int XMLCALL
70 htmlSetMetaEncoding (htmlDocPtr doc,
Owen Taylor3473f882001-02-23 17:55:21 +000071 const xmlChar *encoding);
Daniel Veillarda9cce9c2003-09-29 13:20:24 +000072#ifdef LIBXML_OUTPUT_ENABLED
Igor Zlatkovic76874e42003-08-25 09:05:12 +000073XMLPUBFUN void XMLCALL
74 htmlDocDumpMemory (xmlDocPtr cur,
Daniel Veillard963d2ae2002-01-20 22:08:18 +000075 xmlChar **mem,
Owen Taylor3473f882001-02-23 17:55:21 +000076 int *size);
Igor Zlatkovic76874e42003-08-25 09:05:12 +000077XMLPUBFUN int XMLCALL
78 htmlDocDump (FILE *f,
Owen Taylor3473f882001-02-23 17:55:21 +000079 xmlDocPtr cur);
Igor Zlatkovic76874e42003-08-25 09:05:12 +000080XMLPUBFUN int XMLCALL
81 htmlSaveFile (const char *filename,
Owen Taylor3473f882001-02-23 17:55:21 +000082 xmlDocPtr cur);
Igor Zlatkovic76874e42003-08-25 09:05:12 +000083XMLPUBFUN int XMLCALL
84 htmlNodeDump (xmlBufferPtr buf,
Owen Taylor3473f882001-02-23 17:55:21 +000085 xmlDocPtr doc,
86 xmlNodePtr cur);
Igor Zlatkovic76874e42003-08-25 09:05:12 +000087XMLPUBFUN void XMLCALL
88 htmlNodeDumpFile (FILE *out,
Owen Taylor3473f882001-02-23 17:55:21 +000089 xmlDocPtr doc,
90 xmlNodePtr cur);
Igor Zlatkovic76874e42003-08-25 09:05:12 +000091XMLPUBFUN int XMLCALL
92 htmlNodeDumpFileFormat (FILE *out,
Daniel Veillard95d845f2001-06-13 13:48:46 +000093 xmlDocPtr doc,
94 xmlNodePtr cur,
95 const char *encoding,
96 int format);
Igor Zlatkovic76874e42003-08-25 09:05:12 +000097XMLPUBFUN int XMLCALL
98 htmlSaveFileEnc (const char *filename,
Owen Taylor3473f882001-02-23 17:55:21 +000099 xmlDocPtr cur,
100 const char *encoding);
Igor Zlatkovic76874e42003-08-25 09:05:12 +0000101XMLPUBFUN int XMLCALL
102 htmlSaveFileFormat (const char *filename,
Daniel Veillard95d845f2001-06-13 13:48:46 +0000103 xmlDocPtr cur,
104 const char *encoding,
105 int format);
Owen Taylor3473f882001-02-23 17:55:21 +0000106
Igor Zlatkovic76874e42003-08-25 09:05:12 +0000107XMLPUBFUN void XMLCALL
108 htmlNodeDumpFormatOutput(xmlOutputBufferPtr buf,
CET 2001 Daniel Veillard5a37bde2001-11-01 14:31:22 +0000109 xmlDocPtr doc,
110 xmlNodePtr cur,
111 const char *encoding,
112 int format);
Igor Zlatkovic76874e42003-08-25 09:05:12 +0000113XMLPUBFUN void XMLCALL
114 htmlDocContentDumpOutput(xmlOutputBufferPtr buf,
Owen Taylor3473f882001-02-23 17:55:21 +0000115 xmlDocPtr cur,
116 const char *encoding);
Igor Zlatkovic76874e42003-08-25 09:05:12 +0000117XMLPUBFUN void XMLCALL
118 htmlDocContentDumpFormatOutput(xmlOutputBufferPtr buf,
CET 2001 Daniel Veillard5a37bde2001-11-01 14:31:22 +0000119 xmlDocPtr cur,
120 const char *encoding,
121 int format);
Igor Zlatkovic76874e42003-08-25 09:05:12 +0000122XMLPUBFUN void XMLCALL
123 htmlNodeDumpOutput (xmlOutputBufferPtr buf,
124 xmlDocPtr doc,
125 xmlNodePtr cur,
126 const char *encoding);
Daniel Veillard024b5702002-12-12 00:15:55 +0000127
Daniel Veillarda9cce9c2003-09-29 13:20:24 +0000128#endif /* LIBXML_OUTPUT_ENABLED */
Daniel Veillardc084e472002-08-12 13:27:28 +0000129
Daniel Veillarda9cce9c2003-09-29 13:20:24 +0000130XMLPUBFUN int XMLCALL
131 htmlIsBooleanAttr (const xmlChar *name);
Daniel Veillardc084e472002-08-12 13:27:28 +0000132
133
Owen Taylor3473f882001-02-23 17:55:21 +0000134#ifdef __cplusplus
135}
136#endif
137
138#endif /* __HTML_TREE_H__ */
139