1 <?xml version=
"1.0" encoding=
"ISO-8859-1"?>
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=ISO-8859-1" /><link rel=
"SHORTCUT ICON" href=
"/favicon.ico" /><style type=
"text/css">
4 TD {font-family: Verdana,Arial,Helvetica}
5 BODY {font-family: Verdana,Arial,Helvetica; margin-top:
2em; margin-left:
0em; margin-right:
0em}
6 H1 {font-family: Verdana,Arial,Helvetica}
7 H2 {font-family: Verdana,Arial,Helvetica}
8 H3 {font-family: Verdana,Arial,Helvetica}
9 A: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 xmlstring 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 xmlstring 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://www.blastwave.org/packages.php/libxml2">Solaris binaries
</a></li><li><a href=
"http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries
</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://rubyforge.org/projects/xml-tools/">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-xmlschemastypes.html"><img src=
"left.png" width=
"24" height=
"24" border=
"0" alt=
"Prev" /></a></td><th align=
"left"><a href=
"libxml-xmlschemastypes.html">xmlschemastypes
</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-xmlunicode.html">xmlunicode
</a></th><td><a accesskey=
"n" href=
"libxml-xmlunicode.html"><img src=
"right.png" width=
"24" height=
"24" border=
"0" alt=
"Next" /></a></td></tr></table><p>type and interfaces needed for the internal string handling of the library, especially UTF8 processing.
</p><h2>Table of Contents
</h2><pre class=
"programlisting">#define
<a href=
"#BAD_CAST">BAD_CAST
</a></pre><pre class=
"programlisting">Typedef unsigned char
<a name=
"xmlChar" id=
"xmlChar">xmlChar
</a>
14 </pre><pre class=
"programlisting"><a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> *
<a href=
"#xmlCharStrdup">xmlCharStrdup
</a> (const char * cur)
</pre>
15 <pre class=
"programlisting"><a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> *
<a href=
"#xmlCharStrndup">xmlCharStrndup
</a> (const char * cur,
<br /> int len)
</pre>
16 <pre class=
"programlisting">int
<a href=
"#xmlCheckUTF8">xmlCheckUTF8
</a> (const unsigned char * utf)
</pre>
17 <pre class=
"programlisting">int
<a href=
"#xmlGetUTF8Char">xmlGetUTF8Char
</a> (const unsigned char * utf,
<br /> int * len)
</pre>
18 <pre class=
"programlisting">int
<a href=
"#xmlStrEqual">xmlStrEqual
</a> (const
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * str1,
<br /> const
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * str2)
</pre>
19 <pre class=
"programlisting">int
<a href=
"#xmlStrPrintf">xmlStrPrintf
</a> (
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * buf,
<br /> int len,
<br /> const
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * msg,
<br /> ... ...)
</pre>
20 <pre class=
"programlisting">int
<a href=
"#xmlStrQEqual">xmlStrQEqual
</a> (const
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * pref,
<br /> const
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * name,
<br /> const
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * str)
</pre>
21 <pre class=
"programlisting">int
<a href=
"#xmlStrVPrintf">xmlStrVPrintf
</a> (
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * buf,
<br /> int len,
<br /> const
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * msg,
<br /> va_list ap)
</pre>
22 <pre class=
"programlisting">int
<a href=
"#xmlStrcasecmp">xmlStrcasecmp
</a> (const
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * str1,
<br /> const
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * str2)
</pre>
23 <pre class=
"programlisting">const
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> *
<a href=
"#xmlStrcasestr">xmlStrcasestr
</a> (const
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * str,
<br /> <a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * val)
</pre>
24 <pre class=
"programlisting"><a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> *
<a href=
"#xmlStrcat">xmlStrcat
</a> (
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * cur,
<br /> const
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * add)
</pre>
25 <pre class=
"programlisting">const
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> *
<a href=
"#xmlStrchr">xmlStrchr
</a> (const
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * str,
<br /> <a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> val)
</pre>
26 <pre class=
"programlisting">int
<a href=
"#xmlStrcmp">xmlStrcmp
</a> (const
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * str1,
<br /> const
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * str2)
</pre>
27 <pre class=
"programlisting"><a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> *
<a href=
"#xmlStrdup">xmlStrdup
</a> (const
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * cur)
</pre>
28 <pre class=
"programlisting">int
<a href=
"#xmlStrlen">xmlStrlen
</a> (const
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * str)
</pre>
29 <pre class=
"programlisting">int
<a href=
"#xmlStrncasecmp">xmlStrncasecmp
</a> (const
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * str1,
<br /> const
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * str2,
<br /> int len)
</pre>
30 <pre class=
"programlisting"><a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> *
<a href=
"#xmlStrncat">xmlStrncat
</a> (
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * cur,
<br /> const
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * add,
<br /> int len)
</pre>
31 <pre class=
"programlisting"><a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> *
<a href=
"#xmlStrncatNew">xmlStrncatNew
</a> (const
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * str1,
<br /> const
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * str2,
<br /> int len)
</pre>
32 <pre class=
"programlisting">int
<a href=
"#xmlStrncmp">xmlStrncmp
</a> (const
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * str1,
<br /> const
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * str2,
<br /> int len)
</pre>
33 <pre class=
"programlisting"><a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> *
<a href=
"#xmlStrndup">xmlStrndup
</a> (const
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * cur,
<br /> int len)
</pre>
34 <pre class=
"programlisting">const
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> *
<a href=
"#xmlStrstr">xmlStrstr
</a> (const
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * str,
<br /> const
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * val)
</pre>
35 <pre class=
"programlisting"><a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> *
<a href=
"#xmlStrsub">xmlStrsub
</a> (const
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * str,
<br /> int start,
<br /> int len)
</pre>
36 <pre class=
"programlisting">int
<a href=
"#xmlUTF8Charcmp">xmlUTF8Charcmp
</a> (const
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * utf1,
<br /> const
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * utf2)
</pre>
37 <pre class=
"programlisting">int
<a href=
"#xmlUTF8Size">xmlUTF8Size
</a> (const
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * utf)
</pre>
38 <pre class=
"programlisting">int
<a href=
"#xmlUTF8Strlen">xmlUTF8Strlen
</a> (const
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * utf)
</pre>
39 <pre class=
"programlisting">int
<a href=
"#xmlUTF8Strloc">xmlUTF8Strloc
</a> (const
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * utf,
<br /> const
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * utfchar)
</pre>
40 <pre class=
"programlisting"><a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> *
<a href=
"#xmlUTF8Strndup">xmlUTF8Strndup
</a> (const
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * utf,
<br /> int len)
</pre>
41 <pre class=
"programlisting">const
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> *
<a href=
"#xmlUTF8Strpos">xmlUTF8Strpos
</a> (const
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * utf,
<br /> int pos)
</pre>
42 <pre class=
"programlisting">int
<a href=
"#xmlUTF8Strsize">xmlUTF8Strsize
</a> (const
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * utf,
<br /> int len)
</pre>
43 <pre class=
"programlisting"><a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> *
<a href=
"#xmlUTF8Strsub">xmlUTF8Strsub
</a> (const
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * utf,
<br /> int start,
<br /> int len)
</pre>
45 <h3><a name=
"BAD_CAST" id=
"BAD_CAST"></a>Macro: BAD_CAST
</h3><pre>#define BAD_CAST
</pre><p>Macro to cast a string to an
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * when one know its safe.
</p>
46 <h3><a name=
"xmlCharStrdup" id=
"xmlCharStrdup"></a>Function: xmlCharStrdup
</h3><pre class=
"programlisting"><a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * xmlCharStrdup (const char * cur)
<br />
47 </pre><p>a strdup for char's to xmlChar's
</p>
48 <div class=
"variablelist"><table border=
"0"><col align=
"left" /><tbody><tr><td><span class=
"term"><i><tt>cur
</tt></i>:
</span></td><td>the input char *
</td></tr><tr><td><span class=
"term"><i><tt>Returns
</tt></i>:
</span></td><td>a new
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * or NULL
</td></tr></tbody></table></div><h3><a name=
"xmlCharStrndup" id=
"xmlCharStrndup"></a>Function: xmlCharStrndup
</h3><pre class=
"programlisting"><a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * xmlCharStrndup (const char * cur,
<br /> int len)
<br />
49 </pre><p>a strndup for char's to xmlChar's
</p>
50 <div class=
"variablelist"><table border=
"0"><col align=
"left" /><tbody><tr><td><span class=
"term"><i><tt>cur
</tt></i>:
</span></td><td>the input char *
</td></tr><tr><td><span class=
"term"><i><tt>len
</tt></i>:
</span></td><td>the len of @cur
</td></tr><tr><td><span class=
"term"><i><tt>Returns
</tt></i>:
</span></td><td>a new
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * or NULL
</td></tr></tbody></table></div><h3><a name=
"xmlCheckUTF8" id=
"xmlCheckUTF8"></a>Function: xmlCheckUTF8
</h3><pre class=
"programlisting">int xmlCheckUTF8 (const unsigned char * utf)
<br />
51 </pre><p>Checks @utf for being valid UTF-
8. @utf is assumed to be null-terminated. This function is not super-strict, as it will allow longer UTF-
8 sequences than necessary. Note that Java is capable of producing these sequences if provoked. Also note, this routine checks for the
4-byte maximum size, but does not check for
0x10ffff maximum value.
</p>
52 <div class=
"variablelist"><table border=
"0"><col align=
"left" /><tbody><tr><td><span class=
"term"><i><tt>utf
</tt></i>:
</span></td><td>Pointer to putative UTF-
8 encoded string.
</td></tr><tr><td><span class=
"term"><i><tt>Returns
</tt></i>:
</span></td><td>value: true if @utf is valid.
</td></tr></tbody></table></div><h3><a name=
"xmlGetUTF8Char" id=
"xmlGetUTF8Char"></a>Function: xmlGetUTF8Char
</h3><pre class=
"programlisting">int xmlGetUTF8Char (const unsigned char * utf,
<br /> int * len)
<br />
53 </pre><p>Read the first UTF8 character from @utf
</p>
54 <div class=
"variablelist"><table border=
"0"><col align=
"left" /><tbody><tr><td><span class=
"term"><i><tt>utf
</tt></i>:
</span></td><td>a sequence of UTF-
8 encoded bytes
</td></tr><tr><td><span class=
"term"><i><tt>len
</tt></i>:
</span></td><td>a pointer to the minimum number of bytes present in the sequence. This is used to assure the next character is completely contained within the sequence.
</td></tr><tr><td><span class=
"term"><i><tt>Returns
</tt></i>:
</span></td><td>the char value or -
1 in case of error, and sets *len to the actual number of bytes consumed (
0 in case of error)
</td></tr></tbody></table></div><h3><a name=
"xmlStrEqual" id=
"xmlStrEqual"></a>Function: xmlStrEqual
</h3><pre class=
"programlisting">int xmlStrEqual (const
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * str1,
<br /> const
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * str2)
<br />
55 </pre><p>Check if both string are equal of have same content Should be a bit more readable and faster than xmlStrEqual()
</p>
56 <div class=
"variablelist"><table border=
"0"><col align=
"left" /><tbody><tr><td><span class=
"term"><i><tt>str1
</tt></i>:
</span></td><td>the first
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> *
</td></tr><tr><td><span class=
"term"><i><tt>str2
</tt></i>:
</span></td><td>the second
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> *
</td></tr><tr><td><span class=
"term"><i><tt>Returns
</tt></i>:
</span></td><td>1 if they are equal,
0 if they are different
</td></tr></tbody></table></div><h3><a name=
"xmlStrPrintf" id=
"xmlStrPrintf"></a>Function: xmlStrPrintf
</h3><pre class=
"programlisting">int xmlStrPrintf (
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * buf,
<br /> int len,
<br /> const
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * msg,
<br /> ... ...)
<br />
57 </pre><p>Formats @msg and places result into @buf.
</p>
58 <div class=
"variablelist"><table border=
"0"><col align=
"left" /><tbody><tr><td><span class=
"term"><i><tt>buf
</tt></i>:
</span></td><td>the result buffer.
</td></tr><tr><td><span class=
"term"><i><tt>len
</tt></i>:
</span></td><td>the result buffer length.
</td></tr><tr><td><span class=
"term"><i><tt>msg
</tt></i>:
</span></td><td>the message with printf formatting.
</td></tr><tr><td><span class=
"term"><i><tt>...
</tt></i>:
</span></td><td>extra parameters for the message.
</td></tr><tr><td><span class=
"term"><i><tt>Returns
</tt></i>:
</span></td><td>the number of
<a href=
"libxml-SAX.html#characters">characters
</a> written to @buf or -
1 if an error occurs.
</td></tr></tbody></table></div><h3><a name=
"xmlStrQEqual" id=
"xmlStrQEqual"></a>Function: xmlStrQEqual
</h3><pre class=
"programlisting">int xmlStrQEqual (const
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * pref,
<br /> const
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * name,
<br /> const
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * str)
<br />
59 </pre><p>Check if a QName is Equal to a given string
</p>
60 <div class=
"variablelist"><table border=
"0"><col align=
"left" /><tbody><tr><td><span class=
"term"><i><tt>pref
</tt></i>:
</span></td><td>the prefix of the QName
</td></tr><tr><td><span class=
"term"><i><tt>name
</tt></i>:
</span></td><td>the localname of the QName
</td></tr><tr><td><span class=
"term"><i><tt>str
</tt></i>:
</span></td><td>the second
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> *
</td></tr><tr><td><span class=
"term"><i><tt>Returns
</tt></i>:
</span></td><td>1 if they are equal,
0 if they are different
</td></tr></tbody></table></div><h3><a name=
"xmlStrVPrintf" id=
"xmlStrVPrintf"></a>Function: xmlStrVPrintf
</h3><pre class=
"programlisting">int xmlStrVPrintf (
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * buf,
<br /> int len,
<br /> const
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * msg,
<br /> va_list ap)
<br />
61 </pre><p>Formats @msg and places result into @buf.
</p>
62 <div class=
"variablelist"><table border=
"0"><col align=
"left" /><tbody><tr><td><span class=
"term"><i><tt>buf
</tt></i>:
</span></td><td>the result buffer.
</td></tr><tr><td><span class=
"term"><i><tt>len
</tt></i>:
</span></td><td>the result buffer length.
</td></tr><tr><td><span class=
"term"><i><tt>msg
</tt></i>:
</span></td><td>the message with printf formatting.
</td></tr><tr><td><span class=
"term"><i><tt>ap
</tt></i>:
</span></td><td>extra parameters for the message.
</td></tr><tr><td><span class=
"term"><i><tt>Returns
</tt></i>:
</span></td><td>the number of
<a href=
"libxml-SAX.html#characters">characters
</a> written to @buf or -
1 if an error occurs.
</td></tr></tbody></table></div><h3><a name=
"xmlStrcasecmp" id=
"xmlStrcasecmp"></a>Function: xmlStrcasecmp
</h3><pre class=
"programlisting">int xmlStrcasecmp (const
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * str1,
<br /> const
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * str2)
<br />
63 </pre><p>a strcasecmp for xmlChar's
</p>
64 <div class=
"variablelist"><table border=
"0"><col align=
"left" /><tbody><tr><td><span class=
"term"><i><tt>str1
</tt></i>:
</span></td><td>the first
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> *
</td></tr><tr><td><span class=
"term"><i><tt>str2
</tt></i>:
</span></td><td>the second
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> *
</td></tr><tr><td><span class=
"term"><i><tt>Returns
</tt></i>:
</span></td><td>the integer result of the comparison
</td></tr></tbody></table></div><h3><a name=
"xmlStrcasestr" id=
"xmlStrcasestr"></a>Function: xmlStrcasestr
</h3><pre class=
"programlisting">const
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * xmlStrcasestr (const
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * str,
<br /> <a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * val)
<br />
65 </pre><p>a case-ignoring strstr for xmlChar's
</p>
66 <div class=
"variablelist"><table border=
"0"><col align=
"left" /><tbody><tr><td><span class=
"term"><i><tt>str
</tt></i>:
</span></td><td>the
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * array (haystack)
</td></tr><tr><td><span class=
"term"><i><tt>val
</tt></i>:
</span></td><td>the
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> to search (needle)
</td></tr><tr><td><span class=
"term"><i><tt>Returns
</tt></i>:
</span></td><td>the
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * for the first occurrence or NULL.
</td></tr></tbody></table></div><h3><a name=
"xmlStrcat" id=
"xmlStrcat"></a>Function: xmlStrcat
</h3><pre class=
"programlisting"><a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * xmlStrcat (
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * cur,
<br /> const
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * add)
<br />
67 </pre><p>a strcat for array of xmlChar's. Since they are supposed to be encoded in UTF-
8 or an encoding with
8bit based chars, we assume a termination mark of '
0'.
</p>
68 <div class=
"variablelist"><table border=
"0"><col align=
"left" /><tbody><tr><td><span class=
"term"><i><tt>cur
</tt></i>:
</span></td><td>the original
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * array
</td></tr><tr><td><span class=
"term"><i><tt>add
</tt></i>:
</span></td><td>the
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * array added
</td></tr><tr><td><span class=
"term"><i><tt>Returns
</tt></i>:
</span></td><td>a new
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * containing the concatenated string.
</td></tr></tbody></table></div><h3><a name=
"xmlStrchr" id=
"xmlStrchr"></a>Function: xmlStrchr
</h3><pre class=
"programlisting">const
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * xmlStrchr (const
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * str,
<br /> <a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> val)
<br />
69 </pre><p>a strchr for xmlChar's
</p>
70 <div class=
"variablelist"><table border=
"0"><col align=
"left" /><tbody><tr><td><span class=
"term"><i><tt>str
</tt></i>:
</span></td><td>the
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * array
</td></tr><tr><td><span class=
"term"><i><tt>val
</tt></i>:
</span></td><td>the
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> to search
</td></tr><tr><td><span class=
"term"><i><tt>Returns
</tt></i>:
</span></td><td>the
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * for the first occurrence or NULL.
</td></tr></tbody></table></div><h3><a name=
"xmlStrcmp" id=
"xmlStrcmp"></a>Function: xmlStrcmp
</h3><pre class=
"programlisting">int xmlStrcmp (const
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * str1,
<br /> const
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * str2)
<br />
71 </pre><p>a strcmp for xmlChar's
</p>
72 <div class=
"variablelist"><table border=
"0"><col align=
"left" /><tbody><tr><td><span class=
"term"><i><tt>str1
</tt></i>:
</span></td><td>the first
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> *
</td></tr><tr><td><span class=
"term"><i><tt>str2
</tt></i>:
</span></td><td>the second
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> *
</td></tr><tr><td><span class=
"term"><i><tt>Returns
</tt></i>:
</span></td><td>the integer result of the comparison
</td></tr></tbody></table></div><h3><a name=
"xmlStrdup" id=
"xmlStrdup"></a>Function: xmlStrdup
</h3><pre class=
"programlisting"><a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * xmlStrdup (const
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * cur)
<br />
73 </pre><p>a strdup for array of xmlChar's. Since they are supposed to be encoded in UTF-
8 or an encoding with
8bit based chars, we assume a termination mark of '
0'.
</p>
74 <div class=
"variablelist"><table border=
"0"><col align=
"left" /><tbody><tr><td><span class=
"term"><i><tt>cur
</tt></i>:
</span></td><td>the input
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> *
</td></tr><tr><td><span class=
"term"><i><tt>Returns
</tt></i>:
</span></td><td>a new
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * or NULL
</td></tr></tbody></table></div><h3><a name=
"xmlStrlen" id=
"xmlStrlen"></a>Function: xmlStrlen
</h3><pre class=
"programlisting">int xmlStrlen (const
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * str)
<br />
75 </pre><p>length of a xmlChar's string
</p>
76 <div class=
"variablelist"><table border=
"0"><col align=
"left" /><tbody><tr><td><span class=
"term"><i><tt>str
</tt></i>:
</span></td><td>the
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * array
</td></tr><tr><td><span class=
"term"><i><tt>Returns
</tt></i>:
</span></td><td>the number of
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> contained in the ARRAY.
</td></tr></tbody></table></div><h3><a name=
"xmlStrncasecmp" id=
"xmlStrncasecmp"></a>Function: xmlStrncasecmp
</h3><pre class=
"programlisting">int xmlStrncasecmp (const
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * str1,
<br /> const
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * str2,
<br /> int len)
<br />
77 </pre><p>a strncasecmp for xmlChar's
</p>
78 <div class=
"variablelist"><table border=
"0"><col align=
"left" /><tbody><tr><td><span class=
"term"><i><tt>str1
</tt></i>:
</span></td><td>the first
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> *
</td></tr><tr><td><span class=
"term"><i><tt>str2
</tt></i>:
</span></td><td>the second
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> *
</td></tr><tr><td><span class=
"term"><i><tt>len
</tt></i>:
</span></td><td>the max comparison length
</td></tr><tr><td><span class=
"term"><i><tt>Returns
</tt></i>:
</span></td><td>the integer result of the comparison
</td></tr></tbody></table></div><h3><a name=
"xmlStrncat" id=
"xmlStrncat"></a>Function: xmlStrncat
</h3><pre class=
"programlisting"><a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * xmlStrncat (
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * cur,
<br /> const
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * add,
<br /> int len)
<br />
79 </pre><p>a strncat for array of xmlChar's, it will extend @cur with the len first bytes of @add.
</p>
80 <div class=
"variablelist"><table border=
"0"><col align=
"left" /><tbody><tr><td><span class=
"term"><i><tt>cur
</tt></i>:
</span></td><td>the original
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * array
</td></tr><tr><td><span class=
"term"><i><tt>add
</tt></i>:
</span></td><td>the
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * array added
</td></tr><tr><td><span class=
"term"><i><tt>len
</tt></i>:
</span></td><td>the length of @add
</td></tr><tr><td><span class=
"term"><i><tt>Returns
</tt></i>:
</span></td><td>a new
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> *, the original @cur is reallocated if needed and should not be freed
</td></tr></tbody></table></div><h3><a name=
"xmlStrncatNew" id=
"xmlStrncatNew"></a>Function: xmlStrncatNew
</h3><pre class=
"programlisting"><a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * xmlStrncatNew (const
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * str1,
<br /> const
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * str2,
<br /> int len)
<br />
81 </pre><p>same as xmlStrncat, but creates a new string. The original two strings are not freed.
</p>
82 <div class=
"variablelist"><table border=
"0"><col align=
"left" /><tbody><tr><td><span class=
"term"><i><tt>str1
</tt></i>:
</span></td><td>first
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> string
</td></tr><tr><td><span class=
"term"><i><tt>str2
</tt></i>:
</span></td><td>second
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> string
</td></tr><tr><td><span class=
"term"><i><tt>len
</tt></i>:
</span></td><td>the len of @str2
</td></tr><tr><td><span class=
"term"><i><tt>Returns
</tt></i>:
</span></td><td>a new
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * or NULL
</td></tr></tbody></table></div><h3><a name=
"xmlStrncmp" id=
"xmlStrncmp"></a>Function: xmlStrncmp
</h3><pre class=
"programlisting">int xmlStrncmp (const
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * str1,
<br /> const
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * str2,
<br /> int len)
<br />
83 </pre><p>a strncmp for xmlChar's
</p>
84 <div class=
"variablelist"><table border=
"0"><col align=
"left" /><tbody><tr><td><span class=
"term"><i><tt>str1
</tt></i>:
</span></td><td>the first
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> *
</td></tr><tr><td><span class=
"term"><i><tt>str2
</tt></i>:
</span></td><td>the second
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> *
</td></tr><tr><td><span class=
"term"><i><tt>len
</tt></i>:
</span></td><td>the max comparison length
</td></tr><tr><td><span class=
"term"><i><tt>Returns
</tt></i>:
</span></td><td>the integer result of the comparison
</td></tr></tbody></table></div><h3><a name=
"xmlStrndup" id=
"xmlStrndup"></a>Function: xmlStrndup
</h3><pre class=
"programlisting"><a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * xmlStrndup (const
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * cur,
<br /> int len)
<br />
85 </pre><p>a strndup for array of xmlChar's
</p>
86 <div class=
"variablelist"><table border=
"0"><col align=
"left" /><tbody><tr><td><span class=
"term"><i><tt>cur
</tt></i>:
</span></td><td>the input
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> *
</td></tr><tr><td><span class=
"term"><i><tt>len
</tt></i>:
</span></td><td>the len of @cur
</td></tr><tr><td><span class=
"term"><i><tt>Returns
</tt></i>:
</span></td><td>a new
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * or NULL
</td></tr></tbody></table></div><h3><a name=
"xmlStrstr" id=
"xmlStrstr"></a>Function: xmlStrstr
</h3><pre class=
"programlisting">const
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * xmlStrstr (const
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * str,
<br /> const
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * val)
<br />
87 </pre><p>a strstr for xmlChar's
</p>
88 <div class=
"variablelist"><table border=
"0"><col align=
"left" /><tbody><tr><td><span class=
"term"><i><tt>str
</tt></i>:
</span></td><td>the
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * array (haystack)
</td></tr><tr><td><span class=
"term"><i><tt>val
</tt></i>:
</span></td><td>the
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> to search (needle)
</td></tr><tr><td><span class=
"term"><i><tt>Returns
</tt></i>:
</span></td><td>the
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * for the first occurrence or NULL.
</td></tr></tbody></table></div><h3><a name=
"xmlStrsub" id=
"xmlStrsub"></a>Function: xmlStrsub
</h3><pre class=
"programlisting"><a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * xmlStrsub (const
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * str,
<br /> int start,
<br /> int len)
<br />
89 </pre><p>Extract a substring of a given string
</p>
90 <div class=
"variablelist"><table border=
"0"><col align=
"left" /><tbody><tr><td><span class=
"term"><i><tt>str
</tt></i>:
</span></td><td>the
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * array (haystack)
</td></tr><tr><td><span class=
"term"><i><tt>start
</tt></i>:
</span></td><td>the index of the first char (zero based)
</td></tr><tr><td><span class=
"term"><i><tt>len
</tt></i>:
</span></td><td>the length of the substring
</td></tr><tr><td><span class=
"term"><i><tt>Returns
</tt></i>:
</span></td><td>the
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * for the first occurrence or NULL.
</td></tr></tbody></table></div><h3><a name=
"xmlUTF8Charcmp" id=
"xmlUTF8Charcmp"></a>Function: xmlUTF8Charcmp
</h3><pre class=
"programlisting">int xmlUTF8Charcmp (const
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * utf1,
<br /> const
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * utf2)
<br />
91 </pre><p>compares the two UCS4 values
</p>
92 <div class=
"variablelist"><table border=
"0"><col align=
"left" /><tbody><tr><td><span class=
"term"><i><tt>utf1
</tt></i>:
</span></td><td>pointer to first UTF8 char
</td></tr><tr><td><span class=
"term"><i><tt>utf2
</tt></i>:
</span></td><td>pointer to second UTF8 char
</td></tr><tr><td><span class=
"term"><i><tt>Returns
</tt></i>:
</span></td><td>result of the compare as with
<a href=
"libxml-xmlstring.html#xmlStrncmp">xmlStrncmp
</a></td></tr></tbody></table></div><h3><a name=
"xmlUTF8Size" id=
"xmlUTF8Size"></a>Function: xmlUTF8Size
</h3><pre class=
"programlisting">int xmlUTF8Size (const
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * utf)
<br />
93 </pre><p>calculates the internal size of a UTF8 character
</p>
94 <div class=
"variablelist"><table border=
"0"><col align=
"left" /><tbody><tr><td><span class=
"term"><i><tt>utf
</tt></i>:
</span></td><td>pointer to the UTF8 character
</td></tr><tr><td><span class=
"term"><i><tt>Returns
</tt></i>:
</span></td><td>the numbers of bytes in the character, -
1 on format error
</td></tr></tbody></table></div><h3><a name=
"xmlUTF8Strlen" id=
"xmlUTF8Strlen"></a>Function: xmlUTF8Strlen
</h3><pre class=
"programlisting">int xmlUTF8Strlen (const
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * utf)
<br />
95 </pre><p>compute the length of an UTF8 string, it doesn't do a full UTF8 checking of the content of the string.
</p>
96 <div class=
"variablelist"><table border=
"0"><col align=
"left" /><tbody><tr><td><span class=
"term"><i><tt>utf
</tt></i>:
</span></td><td>a sequence of UTF-
8 encoded bytes
</td></tr><tr><td><span class=
"term"><i><tt>Returns
</tt></i>:
</span></td><td>the number of
<a href=
"libxml-SAX.html#characters">characters
</a> in the string or -
1 in case of error
</td></tr></tbody></table></div><h3><a name=
"xmlUTF8Strloc" id=
"xmlUTF8Strloc"></a>Function: xmlUTF8Strloc
</h3><pre class=
"programlisting">int xmlUTF8Strloc (const
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * utf,
<br /> const
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * utfchar)
<br />
97 </pre><p>a function to provide the relative location of a UTF8 char
</p>
98 <div class=
"variablelist"><table border=
"0"><col align=
"left" /><tbody><tr><td><span class=
"term"><i><tt>utf
</tt></i>:
</span></td><td>the input UTF8 *
</td></tr><tr><td><span class=
"term"><i><tt>utfchar
</tt></i>:
</span></td><td>the UTF8 character to be found
</td></tr><tr><td><span class=
"term"><i><tt>Returns
</tt></i>:
</span></td><td>the relative character position of the desired char or -
1 if not found
</td></tr></tbody></table></div><h3><a name=
"xmlUTF8Strndup" id=
"xmlUTF8Strndup"></a>Function: xmlUTF8Strndup
</h3><pre class=
"programlisting"><a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * xmlUTF8Strndup (const
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * utf,
<br /> int len)
<br />
99 </pre><p>a strndup for array of UTF8's
</p>
100 <div class=
"variablelist"><table border=
"0"><col align=
"left" /><tbody><tr><td><span class=
"term"><i><tt>utf
</tt></i>:
</span></td><td>the input UTF8 *
</td></tr><tr><td><span class=
"term"><i><tt>len
</tt></i>:
</span></td><td>the len of @utf (in chars)
</td></tr><tr><td><span class=
"term"><i><tt>Returns
</tt></i>:
</span></td><td>a new UTF8 * or NULL
</td></tr></tbody></table></div><h3><a name=
"xmlUTF8Strpos" id=
"xmlUTF8Strpos"></a>Function: xmlUTF8Strpos
</h3><pre class=
"programlisting">const
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * xmlUTF8Strpos (const
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * utf,
<br /> int pos)
<br />
101 </pre><p>a function to provide the equivalent of fetching a character from a string array
</p>
102 <div class=
"variablelist"><table border=
"0"><col align=
"left" /><tbody><tr><td><span class=
"term"><i><tt>utf
</tt></i>:
</span></td><td>the input UTF8 *
</td></tr><tr><td><span class=
"term"><i><tt>pos
</tt></i>:
</span></td><td>the position of the desired UTF8 char (in chars)
</td></tr><tr><td><span class=
"term"><i><tt>Returns
</tt></i>:
</span></td><td>a pointer to the UTF8 character or NULL
</td></tr></tbody></table></div><h3><a name=
"xmlUTF8Strsize" id=
"xmlUTF8Strsize"></a>Function: xmlUTF8Strsize
</h3><pre class=
"programlisting">int xmlUTF8Strsize (const
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * utf,
<br /> int len)
<br />
103 </pre><p>storage size of an UTF8 string the behaviour is not garanteed if the input string is not UTF-
8</p>
104 <div class=
"variablelist"><table border=
"0"><col align=
"left" /><tbody><tr><td><span class=
"term"><i><tt>utf
</tt></i>:
</span></td><td>a sequence of UTF-
8 encoded bytes
</td></tr><tr><td><span class=
"term"><i><tt>len
</tt></i>:
</span></td><td>the number of
<a href=
"libxml-SAX.html#characters">characters
</a> in the array
</td></tr><tr><td><span class=
"term"><i><tt>Returns
</tt></i>:
</span></td><td>the storage size of the first 'len'
<a href=
"libxml-SAX.html#characters">characters
</a> of ARRAY
</td></tr></tbody></table></div><h3><a name=
"xmlUTF8Strsub" id=
"xmlUTF8Strsub"></a>Function: xmlUTF8Strsub
</h3><pre class=
"programlisting"><a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * xmlUTF8Strsub (const
<a href=
"libxml-xmlstring.html#xmlChar">xmlChar
</a> * utf,
<br /> int start,
<br /> int len)
<br />
105 </pre><p>Create a substring from a given UTF-
8 string Note: positions are given in units of UTF-
8 chars
</p>
106 <div class=
"variablelist"><table border=
"0"><col align=
"left" /><tbody><tr><td><span class=
"term"><i><tt>utf
</tt></i>:
</span></td><td>a sequence of UTF-
8 encoded bytes
</td></tr><tr><td><span class=
"term"><i><tt>start
</tt></i>:
</span></td><td>relative pos of first char
</td></tr><tr><td><span class=
"term"><i><tt>len
</tt></i>:
</span></td><td>total number to copy
</td></tr><tr><td><span class=
"term"><i><tt>Returns
</tt></i>:
</span></td><td>a pointer to a newly created string or NULL if any problem
</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>