blob: 6ea82078958c359b8a94bece9b8ca53492960941 [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
Daniel Veillarda2351322004-06-27 12:08:10 +000019#ifdef LIBXML_HTML_ENABLED
Owen Taylor3473f882001-02-23 17:55:21 +000020
21#ifdef __cplusplus
22extern "C" {
23#endif
24
Daniel Veillardc084e472002-08-12 13:27:28 +000025
Daniel Veillardbed7b052001-05-19 14:59:49 +000026/**
27 * HTML_TEXT_NODE:
28 *
Daniel Veillard61f26172002-03-12 18:46:39 +000029 * Macro. A text node in a HTML document is really implemented
Daniel Veillardbed7b052001-05-19 14:59:49 +000030 * the same way as a text node in an XML document.
31 */
Owen Taylor3473f882001-02-23 17:55:21 +000032#define HTML_TEXT_NODE XML_TEXT_NODE
Daniel Veillardbed7b052001-05-19 14:59:49 +000033/**
34 * HTML_ENTITY_REF_NODE:
35 *
Daniel Veillard61f26172002-03-12 18:46:39 +000036 * Macro. An entity reference in a HTML document is really implemented
Daniel Veillardbed7b052001-05-19 14:59:49 +000037 * the same way as an entity reference in an XML document.
38 */
Owen Taylor3473f882001-02-23 17:55:21 +000039#define HTML_ENTITY_REF_NODE XML_ENTITY_REF_NODE
Daniel Veillardbed7b052001-05-19 14:59:49 +000040/**
41 * HTML_COMMENT_NODE:
42 *
Daniel Veillard61f26172002-03-12 18:46:39 +000043 * Macro. A comment in a HTML document is really implemented
Daniel Veillardbed7b052001-05-19 14:59:49 +000044 * the same way as a comment in an XML document.
45 */
Owen Taylor3473f882001-02-23 17:55:21 +000046#define HTML_COMMENT_NODE XML_COMMENT_NODE
Daniel Veillardbed7b052001-05-19 14:59:49 +000047/**
48 * HTML_PRESERVE_NODE:
49 *
Daniel Veillard61f26172002-03-12 18:46:39 +000050 * Macro. A preserved node in a HTML document is really implemented
Daniel Veillardbed7b052001-05-19 14:59:49 +000051 * the same way as a CDATA section in an XML document.
52 */
Owen Taylor3473f882001-02-23 17:55:21 +000053#define HTML_PRESERVE_NODE XML_CDATA_SECTION_NODE
Daniel Veillardbed7b052001-05-19 14:59:49 +000054/**
55 * HTML_PI_NODE:
56 *
Daniel Veillard61f26172002-03-12 18:46:39 +000057 * Macro. A processing instruction in a HTML document is really implemented
Daniel Veillardbed7b052001-05-19 14:59:49 +000058 * the same way as a processing instruction in an XML document.
59 */
Daniel Veillard7533cc82001-04-24 15:52:00 +000060#define HTML_PI_NODE XML_PI_NODE
Owen Taylor3473f882001-02-23 17:55:21 +000061
Igor Zlatkovic76874e42003-08-25 09:05:12 +000062XMLPUBFUN htmlDocPtr XMLCALL
63 htmlNewDoc (const xmlChar *URI,
Owen Taylor3473f882001-02-23 17:55:21 +000064 const xmlChar *ExternalID);
Igor Zlatkovic76874e42003-08-25 09:05:12 +000065XMLPUBFUN htmlDocPtr XMLCALL
66 htmlNewDocNoDtD (const xmlChar *URI,
Owen Taylor3473f882001-02-23 17:55:21 +000067 const xmlChar *ExternalID);
Igor Zlatkovic76874e42003-08-25 09:05:12 +000068XMLPUBFUN const xmlChar * XMLCALL
69 htmlGetMetaEncoding (htmlDocPtr doc);
70XMLPUBFUN int XMLCALL
71 htmlSetMetaEncoding (htmlDocPtr doc,
Owen Taylor3473f882001-02-23 17:55:21 +000072 const xmlChar *encoding);
Daniel Veillarda9cce9c2003-09-29 13:20:24 +000073#ifdef LIBXML_OUTPUT_ENABLED
Igor Zlatkovic76874e42003-08-25 09:05:12 +000074XMLPUBFUN void XMLCALL
75 htmlDocDumpMemory (xmlDocPtr cur,
Daniel Veillard963d2ae2002-01-20 22:08:18 +000076 xmlChar **mem,
Owen Taylor3473f882001-02-23 17:55:21 +000077 int *size);
Rob Richards77b92ff2005-12-20 15:55:14 +000078XMLPUBFUN void XMLCALL
79 htmlDocDumpMemoryFormat (xmlDocPtr cur,
80 xmlChar **mem,
81 int *size,
82 int format);
Igor Zlatkovic76874e42003-08-25 09:05:12 +000083XMLPUBFUN int XMLCALL
84 htmlDocDump (FILE *f,
Owen Taylor3473f882001-02-23 17:55:21 +000085 xmlDocPtr cur);
Igor Zlatkovic76874e42003-08-25 09:05:12 +000086XMLPUBFUN int XMLCALL
87 htmlSaveFile (const char *filename,
Owen Taylor3473f882001-02-23 17:55:21 +000088 xmlDocPtr cur);
Igor Zlatkovic76874e42003-08-25 09:05:12 +000089XMLPUBFUN int XMLCALL
90 htmlNodeDump (xmlBufferPtr buf,
Owen Taylor3473f882001-02-23 17:55:21 +000091 xmlDocPtr doc,
92 xmlNodePtr cur);
Igor Zlatkovic76874e42003-08-25 09:05:12 +000093XMLPUBFUN void XMLCALL
94 htmlNodeDumpFile (FILE *out,
Owen Taylor3473f882001-02-23 17:55:21 +000095 xmlDocPtr doc,
96 xmlNodePtr cur);
Igor Zlatkovic76874e42003-08-25 09:05:12 +000097XMLPUBFUN int XMLCALL
98 htmlNodeDumpFileFormat (FILE *out,
Daniel Veillard95d845f2001-06-13 13:48:46 +000099 xmlDocPtr doc,
100 xmlNodePtr cur,
101 const char *encoding,
102 int format);
Igor Zlatkovic76874e42003-08-25 09:05:12 +0000103XMLPUBFUN int XMLCALL
104 htmlSaveFileEnc (const char *filename,
Owen Taylor3473f882001-02-23 17:55:21 +0000105 xmlDocPtr cur,
106 const char *encoding);
Igor Zlatkovic76874e42003-08-25 09:05:12 +0000107XMLPUBFUN int XMLCALL
108 htmlSaveFileFormat (const char *filename,
Daniel Veillard95d845f2001-06-13 13:48:46 +0000109 xmlDocPtr cur,
110 const char *encoding,
111 int format);
Owen Taylor3473f882001-02-23 17:55:21 +0000112
Igor Zlatkovic76874e42003-08-25 09:05:12 +0000113XMLPUBFUN void XMLCALL
114 htmlNodeDumpFormatOutput(xmlOutputBufferPtr buf,
CET 2001 Daniel Veillard5a37bde2001-11-01 14:31:22 +0000115 xmlDocPtr doc,
116 xmlNodePtr cur,
117 const char *encoding,
118 int format);
Igor Zlatkovic76874e42003-08-25 09:05:12 +0000119XMLPUBFUN void XMLCALL
120 htmlDocContentDumpOutput(xmlOutputBufferPtr buf,
Owen Taylor3473f882001-02-23 17:55:21 +0000121 xmlDocPtr cur,
122 const char *encoding);
Igor Zlatkovic76874e42003-08-25 09:05:12 +0000123XMLPUBFUN void XMLCALL
124 htmlDocContentDumpFormatOutput(xmlOutputBufferPtr buf,
CET 2001 Daniel Veillard5a37bde2001-11-01 14:31:22 +0000125 xmlDocPtr cur,
126 const char *encoding,
127 int format);
Igor Zlatkovic76874e42003-08-25 09:05:12 +0000128XMLPUBFUN void XMLCALL
129 htmlNodeDumpOutput (xmlOutputBufferPtr buf,
130 xmlDocPtr doc,
131 xmlNodePtr cur,
132 const char *encoding);
Daniel Veillard024b5702002-12-12 00:15:55 +0000133
Daniel Veillarda9cce9c2003-09-29 13:20:24 +0000134#endif /* LIBXML_OUTPUT_ENABLED */
Daniel Veillardc084e472002-08-12 13:27:28 +0000135
Daniel Veillarda9cce9c2003-09-29 13:20:24 +0000136XMLPUBFUN int XMLCALL
137 htmlIsBooleanAttr (const xmlChar *name);
Daniel Veillardc084e472002-08-12 13:27:28 +0000138
139
Owen Taylor3473f882001-02-23 17:55:21 +0000140#ifdef __cplusplus
141}
142#endif
143
Daniel Veillarda2351322004-06-27 12:08:10 +0000144#endif /* LIBXML_HTML_ENABLED */
145
Owen Taylor3473f882001-02-23 17:55:21 +0000146#endif /* __HTML_TREE_H__ */
147