1<?xml version="1.0" encoding="UTF-8"?> 2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 3<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css"> 4TD {font-family: Verdana,Arial,Helvetica} 5BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em} 6H1 {font-family: Verdana,Arial,Helvetica} 7H2 {font-family: Verdana,Arial,Helvetica} 8H3 {font-family: Verdana,Arial,Helvetica} 9A:link, A:visited, A:active { text-decoration: underline } 10</style><style type="text/css"> 11 div.deprecated pre.programlisting {border-style: double;border-color:red} 12 pre.programlisting {border-style: double;background: #EECFA1} 13 </style><title>Module xmlIO from libxml2</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="/epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="/gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="/w3c.png" alt="W3C Logo" /></a><a href="http://www.redhat.com/"><img src="/redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/"><img src="/Libxml2-Logo-180x168.gif" alt="Made with Libxml2 Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1></h1><h2>Module xmlIO from libxml2</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="/search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a style="font-weight:bold" href="/index.html">Main Menu</a></li><li><a style="font-weight:bold" href="/docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="/examples/index.html">Code Examples</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="libxml-parser.html">Parser API</a></li><li><a href="libxml-tree.html">Tree API</a></li><li><a href="libxml-xmlreader.html">Reader API</a></li><li><a href="/guidelines.html">XML Guidelines</a></li><li><a href="/ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="/APIchunk0.html">Alphabetic</a></li><li><a href="/APIconstructors.html">Constructors</a></li><li><a href="/APIfunctions.html">Functions/Types</a></li><li><a href="/APIfiles.html">Modules</a></li><li><a href="/APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxml2">Bug Tracker</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxml-xlink.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxml-xlink.html">xlink</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="/index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="/index.html">The XML C parser and toolkit of Gnome</a></th><th align="right"><a href="libxml-xmlautomata.html">xmlautomata</a></th><td><a accesskey="n" href="libxml-xmlautomata.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>interface for the I/O interfaces used by the parser </p><h2>Table of Contents</h2><pre class="programlisting"><a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> <a href="#xmlAllocOutputBuffer">xmlAllocOutputBuffer</a> (<a href="libxml-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> encoder)</pre> 14<pre class="programlisting"><a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> <a href="#xmlAllocParserInputBuffer">xmlAllocParserInputBuffer</a> (<a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc)</pre> 15<pre class="programlisting">int <a href="#xmlCheckFilename">xmlCheckFilename</a> (const char * path)</pre> 16<pre class="programlisting"><a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> <a href="#xmlCheckHTTPInput">xmlCheckHTTPInput</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> ret)</pre> 17<pre class="programlisting">void <a href="#xmlCleanupInputCallbacks">xmlCleanupInputCallbacks</a> (void)</pre> 18<pre class="programlisting">void <a href="#xmlCleanupOutputCallbacks">xmlCleanupOutputCallbacks</a> (void)</pre> 19<pre class="programlisting">int <a href="#xmlFileClose">xmlFileClose</a> (void * context)</pre> 20<pre class="programlisting">int <a href="#xmlFileMatch">xmlFileMatch</a> (const char * filename)</pre> 21<pre class="programlisting">void * <a href="#xmlFileOpen">xmlFileOpen</a> (const char * filename)</pre> 22<pre class="programlisting">int <a href="#xmlFileRead">xmlFileRead</a> (void * context, <br /> char * buffer, <br /> int len)</pre> 23<pre class="programlisting">void <a href="#xmlFreeParserInputBuffer">xmlFreeParserInputBuffer</a> (<a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> in)</pre> 24<pre class="programlisting">int <a href="#xmlIOFTPClose">xmlIOFTPClose</a> (void * context)</pre> 25<pre class="programlisting">int <a href="#xmlIOFTPMatch">xmlIOFTPMatch</a> (const char * filename)</pre> 26<pre class="programlisting">void * <a href="#xmlIOFTPOpen">xmlIOFTPOpen</a> (const char * filename)</pre> 27<pre class="programlisting">int <a href="#xmlIOFTPRead">xmlIOFTPRead</a> (void * context, <br /> char * buffer, <br /> int len)</pre> 28<pre class="programlisting">int <a href="#xmlIOHTTPClose">xmlIOHTTPClose</a> (void * context)</pre> 29<pre class="programlisting">int <a href="#xmlIOHTTPMatch">xmlIOHTTPMatch</a> (const char * filename)</pre> 30<pre class="programlisting">void * <a href="#xmlIOHTTPOpen">xmlIOHTTPOpen</a> (const char * filename)</pre> 31<pre class="programlisting">void * <a href="#xmlIOHTTPOpenW">xmlIOHTTPOpenW</a> (const char * post_uri, <br /> int compression)</pre> 32<pre class="programlisting">int <a href="#xmlIOHTTPRead">xmlIOHTTPRead</a> (void * context, <br /> char * buffer, <br /> int len)</pre> 33<pre class="programlisting">Function type: <a href="#xmlInputCloseCallback">xmlInputCloseCallback</a> 34int <a href="#xmlInputCloseCallback">xmlInputCloseCallback</a> (void * context) 35</pre> 36<pre class="programlisting">Function type: <a href="#xmlInputMatchCallback">xmlInputMatchCallback</a> 37int <a href="#xmlInputMatchCallback">xmlInputMatchCallback</a> (char const * filename) 38</pre> 39<pre class="programlisting">Function type: <a href="#xmlInputOpenCallback">xmlInputOpenCallback</a> 40void * <a href="#xmlInputOpenCallback">xmlInputOpenCallback</a> (char const * filename) 41</pre> 42<pre class="programlisting">Function type: <a href="#xmlInputReadCallback">xmlInputReadCallback</a> 43int <a href="#xmlInputReadCallback">xmlInputReadCallback</a> (void * context, <br /> char * buffer, <br /> int len) 44</pre> 45<pre class="programlisting"><a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> <a href="#xmlNoNetExternalEntityLoader">xmlNoNetExternalEntityLoader</a> (const char * URL, <br /> const char * ID, <br /> <a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)</pre> 46<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlNormalizeWindowsPath">xmlNormalizeWindowsPath</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * path)</pre> 47<pre class="programlisting">int <a href="#xmlOutputBufferClose">xmlOutputBufferClose</a> (<a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> out)</pre> 48<pre class="programlisting"><a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> <a href="#xmlOutputBufferCreateBuffer">xmlOutputBufferCreateBuffer</a> (<a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> buffer, <br /> <a href="libxml-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> encoder)</pre> 49<pre class="programlisting"><a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> <a href="#xmlOutputBufferCreateFd">xmlOutputBufferCreateFd</a> (int fd, <br /> <a href="libxml-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> encoder)</pre> 50<pre class="programlisting"><a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> <a href="#xmlOutputBufferCreateFile">xmlOutputBufferCreateFile</a> (FILE * file, <br /> <a href="libxml-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> encoder)</pre> 51<pre class="programlisting"><a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> <a href="#xmlOutputBufferCreateFilename">xmlOutputBufferCreateFilename</a> (const char * URI, <br /> <a href="libxml-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> encoder, <br /> int compression)</pre> 52<pre class="programlisting"><a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> <a href="#xmlOutputBufferCreateIO">xmlOutputBufferCreateIO</a> (<a href="libxml-xmlIO.html#xmlOutputWriteCallback">xmlOutputWriteCallback</a> iowrite, <br /> <a href="libxml-xmlIO.html#xmlOutputCloseCallback">xmlOutputCloseCallback</a> ioclose, <br /> void * ioctx, <br /> <a href="libxml-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> encoder)</pre> 53<pre class="programlisting">int <a href="#xmlOutputBufferFlush">xmlOutputBufferFlush</a> (<a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> out)</pre> 54<pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlOutputBufferGetContent">xmlOutputBufferGetContent</a> (<a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> out)</pre> 55<pre class="programlisting">size_t <a href="#xmlOutputBufferGetSize">xmlOutputBufferGetSize</a> (<a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> out)</pre> 56<pre class="programlisting">int <a href="#xmlOutputBufferWrite">xmlOutputBufferWrite</a> (<a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> out, <br /> int len, <br /> const char * buf)</pre> 57<pre class="programlisting">int <a href="#xmlOutputBufferWriteEscape">xmlOutputBufferWriteEscape</a> (<a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> out, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str, <br /> <a href="libxml-encoding.html#xmlCharEncodingOutputFunc">xmlCharEncodingOutputFunc</a> escaping)</pre> 58<pre class="programlisting">int <a href="#xmlOutputBufferWriteString">xmlOutputBufferWriteString</a> (<a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> out, <br /> const char * str)</pre> 59<pre class="programlisting">Function type: <a href="#xmlOutputCloseCallback">xmlOutputCloseCallback</a> 60int <a href="#xmlOutputCloseCallback">xmlOutputCloseCallback</a> (void * context) 61</pre> 62<pre class="programlisting">Function type: <a href="#xmlOutputMatchCallback">xmlOutputMatchCallback</a> 63int <a href="#xmlOutputMatchCallback">xmlOutputMatchCallback</a> (char const * filename) 64</pre> 65<pre class="programlisting">Function type: <a href="#xmlOutputOpenCallback">xmlOutputOpenCallback</a> 66void * <a href="#xmlOutputOpenCallback">xmlOutputOpenCallback</a> (char const * filename) 67</pre> 68<pre class="programlisting">Function type: <a href="#xmlOutputWriteCallback">xmlOutputWriteCallback</a> 69int <a href="#xmlOutputWriteCallback">xmlOutputWriteCallback</a> (void * context, <br /> const char * buffer, <br /> int len) 70</pre> 71<pre class="programlisting">char * <a href="#xmlParserGetDirectory">xmlParserGetDirectory</a> (const char * filename)</pre> 72<pre class="programlisting"><a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> <a href="#xmlParserInputBufferCreateFd">xmlParserInputBufferCreateFd</a> (int fd, <br /> <a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc)</pre> 73<pre class="programlisting"><a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> <a href="#xmlParserInputBufferCreateFile">xmlParserInputBufferCreateFile</a> (FILE * file, <br /> <a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc)</pre> 74<pre class="programlisting"><a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> <a href="#xmlParserInputBufferCreateFilename">xmlParserInputBufferCreateFilename</a> (const char * URI, <br /> <a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc)</pre> 75<pre class="programlisting"><a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> <a href="#xmlParserInputBufferCreateIO">xmlParserInputBufferCreateIO</a> (<a href="libxml-xmlIO.html#xmlInputReadCallback">xmlInputReadCallback</a> ioread, <br /> <a href="libxml-xmlIO.html#xmlInputCloseCallback">xmlInputCloseCallback</a> ioclose, <br /> void * ioctx, <br /> <a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc)</pre> 76<pre class="programlisting"><a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> <a href="#xmlParserInputBufferCreateMem">xmlParserInputBufferCreateMem</a> (const char * mem, <br /> int size, <br /> <a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc)</pre> 77<pre class="programlisting"><a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> <a href="#xmlParserInputBufferCreateStatic">xmlParserInputBufferCreateStatic</a> (const char * mem, <br /> int size, <br /> <a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc)</pre> 78<pre class="programlisting">int <a href="#xmlParserInputBufferGrow">xmlParserInputBufferGrow</a> (<a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> in, <br /> int len)</pre> 79<pre class="programlisting">int <a href="#xmlParserInputBufferPush">xmlParserInputBufferPush</a> (<a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> in, <br /> int len, <br /> const char * buf)</pre> 80<pre class="programlisting">int <a href="#xmlParserInputBufferRead">xmlParserInputBufferRead</a> (<a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> in, <br /> int len)</pre> 81<pre class="programlisting">int <a href="#xmlPopInputCallbacks">xmlPopInputCallbacks</a> (void)</pre> 82<pre class="programlisting">void <a href="#xmlRegisterDefaultInputCallbacks">xmlRegisterDefaultInputCallbacks</a> (void)</pre> 83<pre class="programlisting">void <a href="#xmlRegisterDefaultOutputCallbacks">xmlRegisterDefaultOutputCallbacks</a> (void)</pre> 84<pre class="programlisting">void <a href="#xmlRegisterHTTPPostCallbacks">xmlRegisterHTTPPostCallbacks</a> (void)</pre> 85<pre class="programlisting">int <a href="#xmlRegisterInputCallbacks">xmlRegisterInputCallbacks</a> (<a href="libxml-xmlIO.html#xmlInputMatchCallback">xmlInputMatchCallback</a> matchFunc, <br /> <a href="libxml-xmlIO.html#xmlInputOpenCallback">xmlInputOpenCallback</a> openFunc, <br /> <a href="libxml-xmlIO.html#xmlInputReadCallback">xmlInputReadCallback</a> readFunc, <br /> <a href="libxml-xmlIO.html#xmlInputCloseCallback">xmlInputCloseCallback</a> closeFunc)</pre> 86<pre class="programlisting">int <a href="#xmlRegisterOutputCallbacks">xmlRegisterOutputCallbacks</a> (<a href="libxml-xmlIO.html#xmlOutputMatchCallback">xmlOutputMatchCallback</a> matchFunc, <br /> <a href="libxml-xmlIO.html#xmlOutputOpenCallback">xmlOutputOpenCallback</a> openFunc, <br /> <a href="libxml-xmlIO.html#xmlOutputWriteCallback">xmlOutputWriteCallback</a> writeFunc, <br /> <a href="libxml-xmlIO.html#xmlOutputCloseCallback">xmlOutputCloseCallback</a> closeFunc)</pre> 87<h2>Description</h2> 88<h3><a name="xmlAllocOutputBuffer" id="xmlAllocOutputBuffer"></a>Function: xmlAllocOutputBuffer</h3><pre class="programlisting"><a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> xmlAllocOutputBuffer (<a href="libxml-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> encoder)<br /> 89</pre><p>Create a buffered parser output</p> 90<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>encoder</tt></i>:</span></td><td>the encoding converter or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new parser output or NULL</td></tr></tbody></table></div><h3><a name="xmlAllocParserInputBuffer" id="xmlAllocParserInputBuffer"></a>Function: xmlAllocParserInputBuffer</h3><pre class="programlisting"><a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> xmlAllocParserInputBuffer (<a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc)<br /> 91</pre><p>Create a buffered parser input for progressive parsing</p> 92<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>enc</tt></i>:</span></td><td>the charset encoding if known</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new parser input or NULL</td></tr></tbody></table></div><h3><a name="xmlCheckFilename" id="xmlCheckFilename"></a>Function: xmlCheckFilename</h3><pre class="programlisting">int xmlCheckFilename (const char * path)<br /> 93</pre><p>function checks to see if @path is a valid source (file, socket...) for XML. if stat is not available on the target machine,</p> 94<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>path</tt></i>:</span></td><td>the path to check</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1. if stat fails, returns 0 (if calling stat on the filename fails, it can't be right). if stat succeeds and the file is a directory, returns 2. otherwise returns 1.</td></tr></tbody></table></div><h3><a name="xmlCheckHTTPInput" id="xmlCheckHTTPInput"></a>Function: xmlCheckHTTPInput</h3><pre class="programlisting"><a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> xmlCheckHTTPInput (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> ret)<br /> 95</pre><p>Check an input in case it was created from an HTTP stream, in that case it will handle encoding and update of the base URL in case of redirection. It also checks for HTTP errors in which case the input is cleanly freed up and an appropriate error is raised in context</p> 96<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>ret</tt></i>:</span></td><td>an XML parser input</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the input or NULL in case of HTTP error.</td></tr></tbody></table></div><h3><a name="xmlCleanupInputCallbacks" id="xmlCleanupInputCallbacks"></a>Function: xmlCleanupInputCallbacks</h3><pre class="programlisting">void xmlCleanupInputCallbacks (void)<br /> 97</pre><p>clears the entire input callback table. this includes the compiled-in I/O.</p> 98<h3><a name="xmlCleanupOutputCallbacks" id="xmlCleanupOutputCallbacks"></a>Function: xmlCleanupOutputCallbacks</h3><pre class="programlisting">void xmlCleanupOutputCallbacks (void)<br /> 99</pre><p>clears the entire output callback table. this includes the compiled-in I/O callbacks.</p> 100<h3><a name="xmlFileClose" id="xmlFileClose"></a>Function: xmlFileClose</h3><pre class="programlisting">int xmlFileClose (void * context)<br /> 101</pre><p>Close an I/O channel</p> 102<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>context</tt></i>:</span></td><td>the I/O context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlFileMatch" id="xmlFileMatch"></a>Function: xmlFileMatch</h3><pre class="programlisting">int xmlFileMatch (const char * filename)<br /> 103</pre><p>input from FILE *</p> 104<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the URI for matching</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if matches, 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlFileOpen" id="xmlFileOpen"></a>Function: xmlFileOpen</h3><pre class="programlisting">void * xmlFileOpen (const char * filename)<br /> 105</pre><p>Wrapper around xmlFileOpen_real that try it with an unescaped version of @filename, if this fails fallback to @filename</p> 106<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the URI for matching</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a handler or NULL in case or failure</td></tr></tbody></table></div><h3><a name="xmlFileRead" id="xmlFileRead"></a>Function: xmlFileRead</h3><pre class="programlisting">int xmlFileRead (void * context, <br /> char * buffer, <br /> int len)<br /> 107</pre><p>Read @len bytes to @buffer from the I/O channel.</p> 108<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>context</tt></i>:</span></td><td>the I/O context</td></tr><tr><td><span class="term"><i><tt>buffer</tt></i>:</span></td><td>where to drop data</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>number of bytes to write</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of bytes written or < 0 in case of failure</td></tr></tbody></table></div><h3><a name="xmlFreeParserInputBuffer" id="xmlFreeParserInputBuffer"></a>Function: xmlFreeParserInputBuffer</h3><pre class="programlisting">void xmlFreeParserInputBuffer (<a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> in)<br /> 109</pre><p>Free up the memory used by a buffered parser input</p> 110<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>in</tt></i>:</span></td><td>a buffered parser input</td></tr></tbody></table></div><h3><a name="xmlIOFTPClose" id="xmlIOFTPClose"></a>Function: xmlIOFTPClose</h3><pre class="programlisting">int xmlIOFTPClose (void * context)<br /> 111</pre><p>Close an FTP I/O channel</p> 112<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>context</tt></i>:</span></td><td>the I/O context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0</td></tr></tbody></table></div><h3><a name="xmlIOFTPMatch" id="xmlIOFTPMatch"></a>Function: xmlIOFTPMatch</h3><pre class="programlisting">int xmlIOFTPMatch (const char * filename)<br /> 113</pre><p>check if the URI matches an FTP one</p> 114<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the URI for matching</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if matches, 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlIOFTPOpen" id="xmlIOFTPOpen"></a>Function: xmlIOFTPOpen</h3><pre class="programlisting">void * xmlIOFTPOpen (const char * filename)<br /> 115</pre><p>open an FTP I/O channel</p> 116<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the URI for matching</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>an I/O context or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlIOFTPRead" id="xmlIOFTPRead"></a>Function: xmlIOFTPRead</h3><pre class="programlisting">int xmlIOFTPRead (void * context, <br /> char * buffer, <br /> int len)<br /> 117</pre><p>Read @len bytes to @buffer from the I/O channel.</p> 118<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>context</tt></i>:</span></td><td>the I/O context</td></tr><tr><td><span class="term"><i><tt>buffer</tt></i>:</span></td><td>where to drop data</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>number of bytes to write</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of bytes written</td></tr></tbody></table></div><h3><a name="xmlIOHTTPClose" id="xmlIOHTTPClose"></a>Function: xmlIOHTTPClose</h3><pre class="programlisting">int xmlIOHTTPClose (void * context)<br /> 119</pre><p>Close an HTTP I/O channel</p> 120<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>context</tt></i>:</span></td><td>the I/O context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0</td></tr></tbody></table></div><h3><a name="xmlIOHTTPMatch" id="xmlIOHTTPMatch"></a>Function: xmlIOHTTPMatch</h3><pre class="programlisting">int xmlIOHTTPMatch (const char * filename)<br /> 121</pre><p>check if the URI matches an HTTP one</p> 122<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the URI for matching</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if matches, 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlIOHTTPOpen" id="xmlIOHTTPOpen"></a>Function: xmlIOHTTPOpen</h3><pre class="programlisting">void * xmlIOHTTPOpen (const char * filename)<br /> 123</pre><p>open an HTTP I/O channel</p> 124<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the URI for matching</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>an I/O context or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlIOHTTPOpenW" id="xmlIOHTTPOpenW"></a>Function: xmlIOHTTPOpenW</h3><pre class="programlisting">void * xmlIOHTTPOpenW (const char * post_uri, <br /> int compression)<br /> 125</pre><p>Open a temporary buffer to collect the document for a subsequent HTTP POST request. Non-static as is called from the output buffer creation routine.</p> 126<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>post_uri</tt></i>:</span></td><td>The destination URI for the document</td></tr><tr><td><span class="term"><i><tt>compression</tt></i>:</span></td><td>The compression desired for the document.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>an I/O context or NULL in case of error.</td></tr></tbody></table></div><h3><a name="xmlIOHTTPRead" id="xmlIOHTTPRead"></a>Function: xmlIOHTTPRead</h3><pre class="programlisting">int xmlIOHTTPRead (void * context, <br /> char * buffer, <br /> int len)<br /> 127</pre><p>Read @len bytes to @buffer from the I/O channel.</p> 128<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>context</tt></i>:</span></td><td>the I/O context</td></tr><tr><td><span class="term"><i><tt>buffer</tt></i>:</span></td><td>where to drop data</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>number of bytes to write</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of bytes written</td></tr></tbody></table></div><h3><a name="xmlInputCloseCallback" id="xmlInputCloseCallback"></a>Function type: xmlInputCloseCallback</h3><pre class="programlisting">Function type: xmlInputCloseCallback 129int xmlInputCloseCallback (void * context) 130</pre><p>Callback used in the I/O Input API to close the resource</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>context</tt></i>:</span></td><td>an Input context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 or -1 in case of error</td></tr></tbody></table></div><br /> 131<h3><a name="xmlInputMatchCallback" id="xmlInputMatchCallback"></a>Function type: xmlInputMatchCallback</h3><pre class="programlisting">Function type: xmlInputMatchCallback 132int xmlInputMatchCallback (char const * filename) 133</pre><p>Callback used in the I/O Input API to detect if the current handler can provide input fonctionnalities for this resource.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the filename or URI</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if yes and 0 if another Input module should be used</td></tr></tbody></table></div><br /> 134<h3><a name="xmlInputOpenCallback" id="xmlInputOpenCallback"></a>Function type: xmlInputOpenCallback</h3><pre class="programlisting">Function type: xmlInputOpenCallback 135void * xmlInputOpenCallback (char const * filename) 136</pre><p>Callback used in the I/O Input API to open the resource</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the filename or URI</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>an Input context or NULL in case or error</td></tr></tbody></table></div><br /> 137<h3><a name="xmlInputReadCallback" id="xmlInputReadCallback"></a>Function type: xmlInputReadCallback</h3><pre class="programlisting">Function type: xmlInputReadCallback 138int xmlInputReadCallback (void * context, <br /> char * buffer, <br /> int len) 139</pre><p>Callback used in the I/O Input API to read the resource</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>context</tt></i>:</span></td><td>an Input context</td></tr><tr><td><span class="term"><i><tt>buffer</tt></i>:</span></td><td>the buffer to store data read</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the length of the buffer in bytes</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of bytes read or -1 in case of error</td></tr></tbody></table></div><br /> 140<h3><a name="xmlNoNetExternalEntityLoader" id="xmlNoNetExternalEntityLoader"></a>Function: xmlNoNetExternalEntityLoader</h3><pre class="programlisting"><a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> xmlNoNetExternalEntityLoader (const char * URL, <br /> const char * ID, <br /> <a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br /> 141</pre><p>A specific entity loader disabling network accesses, though still allowing local catalog accesses for resolution.</p> 142<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the URL for the entity to load</td></tr><tr><td><span class="term"><i><tt>ID</tt></i>:</span></td><td>the System ID for the entity to load</td></tr><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the context in which the entity is called or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new allocated xmlParserInputPtr, or NULL.</td></tr></tbody></table></div><h3><a name="xmlNormalizeWindowsPath" id="xmlNormalizeWindowsPath"></a>Function: xmlNormalizeWindowsPath</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlNormalizeWindowsPath (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * path)<br /> 143</pre><p>This function is obsolete. Please see xmlURIFromPath in uri.c for a better solution.</p> 144<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>path</tt></i>:</span></td><td>the input file path</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a canonicalized version of the path</td></tr></tbody></table></div><h3><a name="xmlOutputBufferClose" id="xmlOutputBufferClose"></a>Function: xmlOutputBufferClose</h3><pre class="programlisting">int xmlOutputBufferClose (<a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> out)<br /> 145</pre><p>flushes and close the output I/O channel and free up all the associated resources</p> 146<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>out</tt></i>:</span></td><td>a buffered output</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of byte written or -1 in case of error.</td></tr></tbody></table></div><h3><a name="xmlOutputBufferCreateBuffer" id="xmlOutputBufferCreateBuffer"></a>Function: xmlOutputBufferCreateBuffer</h3><pre class="programlisting"><a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> xmlOutputBufferCreateBuffer (<a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> buffer, <br /> <a href="libxml-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> encoder)<br /> 147</pre><p>Create a buffered output for the progressive saving to a <a href="libxml-tree.html#xmlBuffer">xmlBuffer</a></p> 148<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>buffer</tt></i>:</span></td><td>a <a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a></td></tr><tr><td><span class="term"><i><tt>encoder</tt></i>:</span></td><td>the encoding converter or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new parser output or NULL</td></tr></tbody></table></div><h3><a name="xmlOutputBufferCreateFd" id="xmlOutputBufferCreateFd"></a>Function: xmlOutputBufferCreateFd</h3><pre class="programlisting"><a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> xmlOutputBufferCreateFd (int fd, <br /> <a href="libxml-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> encoder)<br /> 149</pre><p>Create a buffered output for the progressive saving to a file descriptor</p> 150<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>fd</tt></i>:</span></td><td>a file descriptor number</td></tr><tr><td><span class="term"><i><tt>encoder</tt></i>:</span></td><td>the encoding converter or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new parser output or NULL</td></tr></tbody></table></div><h3><a name="xmlOutputBufferCreateFile" id="xmlOutputBufferCreateFile"></a>Function: xmlOutputBufferCreateFile</h3><pre class="programlisting"><a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> xmlOutputBufferCreateFile (FILE * file, <br /> <a href="libxml-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> encoder)<br /> 151</pre><p>Create a buffered output for the progressive saving to a FILE * buffered C I/O</p> 152<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>file</tt></i>:</span></td><td>a FILE*</td></tr><tr><td><span class="term"><i><tt>encoder</tt></i>:</span></td><td>the encoding converter or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new parser output or NULL</td></tr></tbody></table></div><h3><a name="xmlOutputBufferCreateFilename" id="xmlOutputBufferCreateFilename"></a>Function: xmlOutputBufferCreateFilename</h3><pre class="programlisting"><a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> xmlOutputBufferCreateFilename (const char * URI, <br /> <a href="libxml-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> encoder, <br /> int compression)<br /> 153</pre><p>Create a buffered output for the progressive saving of a file If filename is "-' then we use stdout as the output. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time. TODO: currently if compression is set, the library only support writing to a local file.</p> 154<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>a C string containing the URI or filename</td></tr><tr><td><span class="term"><i><tt>encoder</tt></i>:</span></td><td>the encoding converter or NULL</td></tr><tr><td><span class="term"><i><tt>compression</tt></i>:</span></td><td>the compression ration (0 none, 9 max).</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new output or NULL</td></tr></tbody></table></div><h3><a name="xmlOutputBufferCreateIO" id="xmlOutputBufferCreateIO"></a>Function: xmlOutputBufferCreateIO</h3><pre class="programlisting"><a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> xmlOutputBufferCreateIO (<a href="libxml-xmlIO.html#xmlOutputWriteCallback">xmlOutputWriteCallback</a> iowrite, <br /> <a href="libxml-xmlIO.html#xmlOutputCloseCallback">xmlOutputCloseCallback</a> ioclose, <br /> void * ioctx, <br /> <a href="libxml-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> encoder)<br /> 155</pre><p>Create a buffered output for the progressive saving to an I/O handler</p> 156<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>iowrite</tt></i>:</span></td><td>an I/O write function</td></tr><tr><td><span class="term"><i><tt>ioclose</tt></i>:</span></td><td>an I/O close function</td></tr><tr><td><span class="term"><i><tt>ioctx</tt></i>:</span></td><td>an I/O handler</td></tr><tr><td><span class="term"><i><tt>encoder</tt></i>:</span></td><td>the charset encoding if known</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new parser output or NULL</td></tr></tbody></table></div><h3><a name="xmlOutputBufferFlush" id="xmlOutputBufferFlush"></a>Function: xmlOutputBufferFlush</h3><pre class="programlisting">int xmlOutputBufferFlush (<a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> out)<br /> 157</pre><p>flushes the output I/O channel</p> 158<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>out</tt></i>:</span></td><td>a buffered output</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of byte written or -1 in case of error.</td></tr></tbody></table></div><h3><a name="xmlOutputBufferGetContent" id="xmlOutputBufferGetContent"></a>Function: xmlOutputBufferGetContent</h3><pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlOutputBufferGetContent (<a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> out)<br /> 159</pre><p>Gives a pointer to the data currently held in the output buffer</p> 160<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>out</tt></i>:</span></td><td>an <a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the data or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlOutputBufferGetSize" id="xmlOutputBufferGetSize"></a>Function: xmlOutputBufferGetSize</h3><pre class="programlisting">size_t xmlOutputBufferGetSize (<a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> out)<br /> 161</pre><p>Gives the length of the data currently held in the output buffer</p> 162<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>out</tt></i>:</span></td><td>an <a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case or error or no data is held, the size otherwise</td></tr></tbody></table></div><h3><a name="xmlOutputBufferWrite" id="xmlOutputBufferWrite"></a>Function: xmlOutputBufferWrite</h3><pre class="programlisting">int xmlOutputBufferWrite (<a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> out, <br /> int len, <br /> const char * buf)<br /> 163</pre><p>Write the content of the array in the output I/O buffer This routine handle the I18N transcoding from internal UTF-8 The buffer is lossless, i.e. will store in case of partial or delayed writes.</p> 164<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>out</tt></i>:</span></td><td>a buffered parser output</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the size in bytes of the array.</td></tr><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>an char array</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of chars immediately written, or -1 in case of error.</td></tr></tbody></table></div><h3><a name="xmlOutputBufferWriteEscape" id="xmlOutputBufferWriteEscape"></a>Function: xmlOutputBufferWriteEscape</h3><pre class="programlisting">int xmlOutputBufferWriteEscape (<a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> out, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str, <br /> <a href="libxml-encoding.html#xmlCharEncodingOutputFunc">xmlCharEncodingOutputFunc</a> escaping)<br /> 165</pre><p>Write the content of the string in the output I/O buffer This routine escapes the caracters and then handle the I18N transcoding from internal UTF-8 The buffer is lossless, i.e. will store in case of partial or delayed writes.</p> 166<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>out</tt></i>:</span></td><td>a buffered parser output</td></tr><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>a zero terminated UTF-8 string</td></tr><tr><td><span class="term"><i><tt>escaping</tt></i>:</span></td><td>an optional escaping function (or NULL)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of chars immediately written, or -1 in case of error.</td></tr></tbody></table></div><h3><a name="xmlOutputBufferWriteString" id="xmlOutputBufferWriteString"></a>Function: xmlOutputBufferWriteString</h3><pre class="programlisting">int xmlOutputBufferWriteString (<a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> out, <br /> const char * str)<br /> 167</pre><p>Write the content of the string in the output I/O buffer This routine handle the I18N transcoding from internal UTF-8 The buffer is lossless, i.e. will store in case of partial or delayed writes.</p> 168<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>out</tt></i>:</span></td><td>a buffered parser output</td></tr><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>a zero terminated C string</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of chars immediately written, or -1 in case of error.</td></tr></tbody></table></div><h3><a name="xmlOutputCloseCallback" id="xmlOutputCloseCallback"></a>Function type: xmlOutputCloseCallback</h3><pre class="programlisting">Function type: xmlOutputCloseCallback 169int xmlOutputCloseCallback (void * context) 170</pre><p>Callback used in the I/O Output API to close the resource</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>context</tt></i>:</span></td><td>an Output context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 or -1 in case of error</td></tr></tbody></table></div><br /> 171<h3><a name="xmlOutputMatchCallback" id="xmlOutputMatchCallback"></a>Function type: xmlOutputMatchCallback</h3><pre class="programlisting">Function type: xmlOutputMatchCallback 172int xmlOutputMatchCallback (char const * filename) 173</pre><p>Callback used in the I/O Output API to detect if the current handler can provide output fonctionnalities for this resource.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the filename or URI</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if yes and 0 if another Output module should be used</td></tr></tbody></table></div><br /> 174<h3><a name="xmlOutputOpenCallback" id="xmlOutputOpenCallback"></a>Function type: xmlOutputOpenCallback</h3><pre class="programlisting">Function type: xmlOutputOpenCallback 175void * xmlOutputOpenCallback (char const * filename) 176</pre><p>Callback used in the I/O Output API to open the resource</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the filename or URI</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>an Output context or NULL in case or error</td></tr></tbody></table></div><br /> 177<h3><a name="xmlOutputWriteCallback" id="xmlOutputWriteCallback"></a>Function type: xmlOutputWriteCallback</h3><pre class="programlisting">Function type: xmlOutputWriteCallback 178int xmlOutputWriteCallback (void * context, <br /> const char * buffer, <br /> int len) 179</pre><p>Callback used in the I/O Output API to write to the resource</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>context</tt></i>:</span></td><td>an Output context</td></tr><tr><td><span class="term"><i><tt>buffer</tt></i>:</span></td><td>the buffer of data to write</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the length of the buffer in bytes</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of bytes written or -1 in case of error</td></tr></tbody></table></div><br /> 180<h3><a name="xmlParserGetDirectory" id="xmlParserGetDirectory"></a>Function: xmlParserGetDirectory</h3><pre class="programlisting">char * xmlParserGetDirectory (const char * filename)<br /> 181</pre><p>lookup the directory for that file</p> 182<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the path to a file</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new allocated string containing the directory, or NULL.</td></tr></tbody></table></div><h3><a name="xmlParserInputBufferCreateFd" id="xmlParserInputBufferCreateFd"></a>Function: xmlParserInputBufferCreateFd</h3><pre class="programlisting"><a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> xmlParserInputBufferCreateFd (int fd, <br /> <a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc)<br /> 183</pre><p>Create a buffered parser input for the progressive parsing for the input from a file descriptor</p> 184<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>fd</tt></i>:</span></td><td>a file descriptor number</td></tr><tr><td><span class="term"><i><tt>enc</tt></i>:</span></td><td>the charset encoding if known</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new parser input or NULL</td></tr></tbody></table></div><h3><a name="xmlParserInputBufferCreateFile" id="xmlParserInputBufferCreateFile"></a>Function: xmlParserInputBufferCreateFile</h3><pre class="programlisting"><a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> xmlParserInputBufferCreateFile (FILE * file, <br /> <a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc)<br /> 185</pre><p>Create a buffered parser input for the progressive parsing of a FILE * buffered C I/O</p> 186<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>file</tt></i>:</span></td><td>a FILE*</td></tr><tr><td><span class="term"><i><tt>enc</tt></i>:</span></td><td>the charset encoding if known</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new parser input or NULL</td></tr></tbody></table></div><h3><a name="xmlParserInputBufferCreateFilename" id="xmlParserInputBufferCreateFilename"></a>Function: xmlParserInputBufferCreateFilename</h3><pre class="programlisting"><a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> xmlParserInputBufferCreateFilename (const char * URI, <br /> <a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc)<br /> 187</pre><p>Create a buffered parser input for the progressive parsing of a file If filename is "-' then we use stdin as the input. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time. Do an encoding check if enc == <a href="libxml-encoding.html#XML_CHAR_ENCODING_NONE">XML_CHAR_ENCODING_NONE</a></p> 188<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>a C string containing the URI or filename</td></tr><tr><td><span class="term"><i><tt>enc</tt></i>:</span></td><td>the charset encoding if known</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new parser input or NULL</td></tr></tbody></table></div><h3><a name="xmlParserInputBufferCreateIO" id="xmlParserInputBufferCreateIO"></a>Function: xmlParserInputBufferCreateIO</h3><pre class="programlisting"><a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> xmlParserInputBufferCreateIO (<a href="libxml-xmlIO.html#xmlInputReadCallback">xmlInputReadCallback</a> ioread, <br /> <a href="libxml-xmlIO.html#xmlInputCloseCallback">xmlInputCloseCallback</a> ioclose, <br /> void * ioctx, <br /> <a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc)<br /> 189</pre><p>Create a buffered parser input for the progressive parsing for the input from an I/O handler</p> 190<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ioread</tt></i>:</span></td><td>an I/O read function</td></tr><tr><td><span class="term"><i><tt>ioclose</tt></i>:</span></td><td>an I/O close function</td></tr><tr><td><span class="term"><i><tt>ioctx</tt></i>:</span></td><td>an I/O handler</td></tr><tr><td><span class="term"><i><tt>enc</tt></i>:</span></td><td>the charset encoding if known</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new parser input or NULL</td></tr></tbody></table></div><h3><a name="xmlParserInputBufferCreateMem" id="xmlParserInputBufferCreateMem"></a>Function: xmlParserInputBufferCreateMem</h3><pre class="programlisting"><a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> xmlParserInputBufferCreateMem (const char * mem, <br /> int size, <br /> <a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc)<br /> 191</pre><p>Create a buffered parser input for the progressive parsing for the input from a memory area.</p> 192<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>mem</tt></i>:</span></td><td>the memory input</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the length of the memory block</td></tr><tr><td><span class="term"><i><tt>enc</tt></i>:</span></td><td>the charset encoding if known</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new parser input or NULL</td></tr></tbody></table></div><h3><a name="xmlParserInputBufferCreateStatic" id="xmlParserInputBufferCreateStatic"></a>Function: xmlParserInputBufferCreateStatic</h3><pre class="programlisting"><a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> xmlParserInputBufferCreateStatic (const char * mem, <br /> int size, <br /> <a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc)<br /> 193</pre><p>Create a buffered parser input for the progressive parsing for the input from an immutable memory area. This will not copy the memory area to the buffer, but the memory is expected to be available until the end of the parsing, this is useful for example when using mmap'ed file.</p> 194<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>mem</tt></i>:</span></td><td>the memory input</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the length of the memory block</td></tr><tr><td><span class="term"><i><tt>enc</tt></i>:</span></td><td>the charset encoding if known</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new parser input or NULL</td></tr></tbody></table></div><h3><a name="xmlParserInputBufferGrow" id="xmlParserInputBufferGrow"></a>Function: xmlParserInputBufferGrow</h3><pre class="programlisting">int xmlParserInputBufferGrow (<a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> in, <br /> int len)<br /> 195</pre><p>Grow up the content of the input buffer, the old data are preserved This routine handle the I18N transcoding to internal UTF-8 This routine is used when operating the parser in normal (pull) mode TODO: one should be able to remove one extra copy by copying directly onto in->buffer or in->raw</p> 196<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>in</tt></i>:</span></td><td>a buffered parser input</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>indicative value of the amount of chars to read</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of chars read and stored in the buffer, or -1 in case of error.</td></tr></tbody></table></div><h3><a name="xmlParserInputBufferPush" id="xmlParserInputBufferPush"></a>Function: xmlParserInputBufferPush</h3><pre class="programlisting">int xmlParserInputBufferPush (<a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> in, <br /> int len, <br /> const char * buf)<br /> 197</pre><p>Push the content of the arry in the input buffer This routine handle the I18N transcoding to internal UTF-8 This is used when operating the parser in progressive (push) mode.</p> 198<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>in</tt></i>:</span></td><td>a buffered parser input</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the size in bytes of the array.</td></tr><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>an char array</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of chars read and stored in the buffer, or -1 in case of error.</td></tr></tbody></table></div><h3><a name="xmlParserInputBufferRead" id="xmlParserInputBufferRead"></a>Function: xmlParserInputBufferRead</h3><pre class="programlisting">int xmlParserInputBufferRead (<a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> in, <br /> int len)<br /> 199</pre><p>Refresh the content of the input buffer, the old data are considered consumed This routine handle the I18N transcoding to internal UTF-8</p> 200<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>in</tt></i>:</span></td><td>a buffered parser input</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>indicative value of the amount of chars to read</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of chars read and stored in the buffer, or -1 in case of error.</td></tr></tbody></table></div><h3><a name="xmlPopInputCallbacks" id="xmlPopInputCallbacks"></a>Function: xmlPopInputCallbacks</h3><pre class="programlisting">int xmlPopInputCallbacks (void)<br /> 201</pre><p>Clear the top input callback from the input stack. this includes the compiled-in I/O.</p> 202<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of input callback registered or -1 in case of error.</td></tr></tbody></table></div><h3><a name="xmlRegisterDefaultInputCallbacks" id="xmlRegisterDefaultInputCallbacks"></a>Function: xmlRegisterDefaultInputCallbacks</h3><pre class="programlisting">void xmlRegisterDefaultInputCallbacks (void)<br /> 203</pre><p>Registers the default compiled-in I/O handlers.</p> 204<h3><a name="xmlRegisterDefaultOutputCallbacks" id="xmlRegisterDefaultOutputCallbacks"></a>Function: xmlRegisterDefaultOutputCallbacks</h3><pre class="programlisting">void xmlRegisterDefaultOutputCallbacks (void)<br /> 205</pre><p>Registers the default compiled-in I/O handlers.</p> 206<h3><a name="xmlRegisterHTTPPostCallbacks" id="xmlRegisterHTTPPostCallbacks"></a>Function: xmlRegisterHTTPPostCallbacks</h3><pre class="programlisting">void xmlRegisterHTTPPostCallbacks (void)<br /> 207</pre><p>By default, libxml submits HTTP output requests using the "PUT" method. Calling this method changes the HTTP output method to use the "POST" method instead.</p> 208<h3><a name="xmlRegisterInputCallbacks" id="xmlRegisterInputCallbacks"></a>Function: xmlRegisterInputCallbacks</h3><pre class="programlisting">int xmlRegisterInputCallbacks (<a href="libxml-xmlIO.html#xmlInputMatchCallback">xmlInputMatchCallback</a> matchFunc, <br /> <a href="libxml-xmlIO.html#xmlInputOpenCallback">xmlInputOpenCallback</a> openFunc, <br /> <a href="libxml-xmlIO.html#xmlInputReadCallback">xmlInputReadCallback</a> readFunc, <br /> <a href="libxml-xmlIO.html#xmlInputCloseCallback">xmlInputCloseCallback</a> closeFunc)<br /> 209</pre><p>Register a new set of I/O callback for handling parser input.</p> 210<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>matchFunc</tt></i>:</span></td><td>the <a href="libxml-xmlIO.html#xmlInputMatchCallback">xmlInputMatchCallback</a></td></tr><tr><td><span class="term"><i><tt>openFunc</tt></i>:</span></td><td>the <a href="libxml-xmlIO.html#xmlInputOpenCallback">xmlInputOpenCallback</a></td></tr><tr><td><span class="term"><i><tt>readFunc</tt></i>:</span></td><td>the <a href="libxml-xmlIO.html#xmlInputReadCallback">xmlInputReadCallback</a></td></tr><tr><td><span class="term"><i><tt>closeFunc</tt></i>:</span></td><td>the <a href="libxml-xmlIO.html#xmlInputCloseCallback">xmlInputCloseCallback</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the registered handler number or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlRegisterOutputCallbacks" id="xmlRegisterOutputCallbacks"></a>Function: xmlRegisterOutputCallbacks</h3><pre class="programlisting">int xmlRegisterOutputCallbacks (<a href="libxml-xmlIO.html#xmlOutputMatchCallback">xmlOutputMatchCallback</a> matchFunc, <br /> <a href="libxml-xmlIO.html#xmlOutputOpenCallback">xmlOutputOpenCallback</a> openFunc, <br /> <a href="libxml-xmlIO.html#xmlOutputWriteCallback">xmlOutputWriteCallback</a> writeFunc, <br /> <a href="libxml-xmlIO.html#xmlOutputCloseCallback">xmlOutputCloseCallback</a> closeFunc)<br /> 211</pre><p>Register a new set of I/O callback for handling output.</p> 212<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>matchFunc</tt></i>:</span></td><td>the <a href="libxml-xmlIO.html#xmlOutputMatchCallback">xmlOutputMatchCallback</a></td></tr><tr><td><span class="term"><i><tt>openFunc</tt></i>:</span></td><td>the <a href="libxml-xmlIO.html#xmlOutputOpenCallback">xmlOutputOpenCallback</a></td></tr><tr><td><span class="term"><i><tt>writeFunc</tt></i>:</span></td><td>the <a href="libxml-xmlIO.html#xmlOutputWriteCallback">xmlOutputWriteCallback</a></td></tr><tr><td><span class="term"><i><tt>closeFunc</tt></i>:</span></td><td>the <a href="libxml-xmlIO.html#xmlOutputCloseCallback">xmlOutputCloseCallback</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the registered handler number or -1 in case of error</td></tr></tbody></table></div><p><a href="/bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html> 213