38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync/*
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * Summary: specific APIs to process HTML tree, especially serialization
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * Description: this module implements a few function needed to process
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * tree in an HTML specific way.
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync *
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * Copy: See Copyright for the status of this software.
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync *
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * Author: Daniel Veillard
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync */
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync#ifndef __HTML_TREE_H__
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync#define __HTML_TREE_H__
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync#include <stdio.h>
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync#include <libxml/xmlversion.h>
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync#include <libxml/tree.h>
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync#include <libxml/HTMLparser.h>
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync#ifdef LIBXML_HTML_ENABLED
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync#ifdef __cplusplus
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncextern "C" {
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync#endif
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync/**
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * HTML_TEXT_NODE:
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync *
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * Macro. A text node in a HTML document is really implemented
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * the same way as a text node in an XML document.
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync */
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync#define HTML_TEXT_NODE XML_TEXT_NODE
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync/**
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * HTML_ENTITY_REF_NODE:
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync *
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * Macro. An entity reference in a HTML document is really implemented
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * the same way as an entity reference in an XML document.
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync */
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync#define HTML_ENTITY_REF_NODE XML_ENTITY_REF_NODE
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync/**
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * HTML_COMMENT_NODE:
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync *
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * Macro. A comment in a HTML document is really implemented
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * the same way as a comment in an XML document.
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync */
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync#define HTML_COMMENT_NODE XML_COMMENT_NODE
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync/**
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * HTML_PRESERVE_NODE:
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync *
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * Macro. A preserved node in a HTML document is really implemented
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * the same way as a CDATA section in an XML document.
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync */
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync#define HTML_PRESERVE_NODE XML_CDATA_SECTION_NODE
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync/**
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * HTML_PI_NODE:
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync *
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * Macro. A processing instruction in a HTML document is really implemented
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * the same way as a processing instruction in an XML document.
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync */
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync#define HTML_PI_NODE XML_PI_NODE
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncXMLPUBFUN htmlDocPtr XMLCALL
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync htmlNewDoc (const xmlChar *URI,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync const xmlChar *ExternalID);
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncXMLPUBFUN htmlDocPtr XMLCALL
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync htmlNewDocNoDtD (const xmlChar *URI,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync const xmlChar *ExternalID);
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncXMLPUBFUN const xmlChar * XMLCALL
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync htmlGetMetaEncoding (htmlDocPtr doc);
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncXMLPUBFUN int XMLCALL
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync htmlSetMetaEncoding (htmlDocPtr doc,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync const xmlChar *encoding);
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync#ifdef LIBXML_OUTPUT_ENABLED
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncXMLPUBFUN void XMLCALL
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync htmlDocDumpMemory (xmlDocPtr cur,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync xmlChar **mem,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync int *size);
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncXMLPUBFUN void XMLCALL
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync htmlDocDumpMemoryFormat (xmlDocPtr cur,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync xmlChar **mem,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync int *size,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync int format);
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncXMLPUBFUN int XMLCALL
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync htmlDocDump (FILE *f,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync xmlDocPtr cur);
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncXMLPUBFUN int XMLCALL
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync htmlSaveFile (const char *filename,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync xmlDocPtr cur);
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncXMLPUBFUN int XMLCALL
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync htmlNodeDump (xmlBufferPtr buf,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync xmlDocPtr doc,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync xmlNodePtr cur);
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncXMLPUBFUN void XMLCALL
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync htmlNodeDumpFile (FILE *out,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync xmlDocPtr doc,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync xmlNodePtr cur);
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncXMLPUBFUN int XMLCALL
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync htmlNodeDumpFileFormat (FILE *out,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync xmlDocPtr doc,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync xmlNodePtr cur,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync const char *encoding,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync int format);
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncXMLPUBFUN int XMLCALL
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync htmlSaveFileEnc (const char *filename,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync xmlDocPtr cur,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync const char *encoding);
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncXMLPUBFUN int XMLCALL
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync htmlSaveFileFormat (const char *filename,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync xmlDocPtr cur,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync const char *encoding,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync int format);
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncXMLPUBFUN void XMLCALL
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync htmlNodeDumpFormatOutput(xmlOutputBufferPtr buf,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync xmlDocPtr doc,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync xmlNodePtr cur,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync const char *encoding,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync int format);
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncXMLPUBFUN void XMLCALL
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync htmlDocContentDumpOutput(xmlOutputBufferPtr buf,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync xmlDocPtr cur,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync const char *encoding);
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncXMLPUBFUN void XMLCALL
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync htmlDocContentDumpFormatOutput(xmlOutputBufferPtr buf,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync xmlDocPtr cur,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync const char *encoding,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync int format);
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncXMLPUBFUN void XMLCALL
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync htmlNodeDumpOutput (xmlOutputBufferPtr buf,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync xmlDocPtr doc,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync xmlNodePtr cur,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync const char *encoding);
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync#endif /* LIBXML_OUTPUT_ENABLED */
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncXMLPUBFUN int XMLCALL
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync htmlIsBooleanAttr (const xmlChar *name);
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync#ifdef __cplusplus
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync}
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync#endif
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync#endif /* LIBXML_HTML_ENABLED */
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync#endif /* __HTML_TREE_H__ */
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync