type and interfaces needed for the internal string handling of the library, especially UTF8 processing. Table of Contents#define BAD_CAST Typedef unsigned char xmlChar
xmlChar * xmlCharStrdup (const char * cur)
xmlChar * xmlCharStrndup (const char * cur, int len)
int xmlCheckUTF8 (const unsigned char * utf)
int xmlGetUTF8Char (const unsigned char * utf, int * len)
int xmlStrEqual (const xmlChar * str1, const xmlChar * str2)
int xmlStrPrintf (xmlChar * buf, int len, const xmlChar * msg, ... ...)
int xmlStrQEqual (const xmlChar * pref, const xmlChar * name, const xmlChar * str)
int xmlStrVPrintf (xmlChar * buf, int len, const xmlChar * msg, va_list ap)
int xmlStrcasecmp (const xmlChar * str1, const xmlChar * str2)
const xmlChar * xmlStrcasestr (const xmlChar * str, const xmlChar * val)
xmlChar * xmlStrcat (xmlChar * cur, const xmlChar * add)
const xmlChar * xmlStrchr (const xmlChar * str, xmlChar val)
int xmlStrcmp (const xmlChar * str1, const xmlChar * str2)
xmlChar * xmlStrdup (const xmlChar * cur)
int xmlStrlen (const xmlChar * str)
int xmlStrncasecmp (const xmlChar * str1, const xmlChar * str2, int len)
xmlChar * xmlStrncat (xmlChar * cur, const xmlChar * add, int len)
xmlChar * xmlStrncatNew (const xmlChar * str1, const xmlChar * str2, int len)
int xmlStrncmp (const xmlChar * str1, const xmlChar * str2, int len)
xmlChar * xmlStrndup (const xmlChar * cur, int len)
const xmlChar * xmlStrstr (const xmlChar * str, const xmlChar * val)
xmlChar * xmlStrsub (const xmlChar * str, int start, int len)
int xmlUTF8Charcmp (const xmlChar * utf1, const xmlChar * utf2)
int xmlUTF8Size (const xmlChar * utf)
int xmlUTF8Strlen (const xmlChar * utf)
int xmlUTF8Strloc (const xmlChar * utf, const xmlChar * utfchar)
xmlChar * xmlUTF8Strndup (const xmlChar * utf, int len)
const xmlChar * xmlUTF8Strpos (const xmlChar * utf, int pos)
int xmlUTF8Strsize (const xmlChar * utf, int len)
xmlChar * xmlUTF8Strsub (const xmlChar * utf, int start, int len)
Description
Macro: BAD_CAST#define BAD_CAST Macro to cast a string to an xmlChar * when one know its safe.
This is a basic byte in an UTF-8 encoded string. It's unsigned allowing to pinpoint case where char * are assigned to xmlChar * (possibly making serialization back impossible).
Function: xmlCharStrdupxmlChar * xmlCharStrdup (const char * cur)
a strdup for char's to xmlChar's
cur: | the input char * | Returns: | a new xmlChar * or NULL |
Function: xmlCharStrndupxmlChar * xmlCharStrndup (const char * cur, int len)
a strndup for char's to xmlChar's
cur: | the input char * | len: | the len of @cur | Returns: | a new xmlChar * or NULL |
Function: xmlCheckUTF8int xmlCheckUTF8 (const unsigned char * utf)
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.
utf: | Pointer to putative UTF-8 encoded string. | Returns: | value: true if @utf is valid. |
Function: xmlGetUTF8Charint xmlGetUTF8Char (const unsigned char * utf, int * len)
Read the first UTF8 character from @utf
utf: | a sequence of UTF-8 encoded bytes | len: | 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. | Returns: | the char value or -1 in case of error, and sets *len to the actual number of bytes consumed (0 in case of error) |
Function: xmlStrEqualint xmlStrEqual (const xmlChar * str1, const xmlChar * str2)
Check if both strings are equal of have same content. Should be a bit more readable and faster than xmlStrcmp()
str1: | the first xmlChar * | str2: | the second xmlChar * | Returns: | 1 if they are equal, 0 if they are different |
Function: xmlStrPrintfint xmlStrPrintf (xmlChar * buf, int len, const xmlChar * msg, ... ...)
Formats @msg and places result into @buf.
buf: | the result buffer. | len: | the result buffer length. | msg: | the message with printf formatting. | ...: | extra parameters for the message. | Returns: | the number of characters written to @buf or -1 if an error occurs. |
Function: xmlStrQEqualint xmlStrQEqual (const xmlChar * pref, const xmlChar * name, const xmlChar * str)
Check if a QName is Equal to a given string
pref: | the prefix of the QName | name: | the localname of the QName | str: | the second xmlChar * | Returns: | 1 if they are equal, 0 if they are different |
Function: xmlStrVPrintfint xmlStrVPrintf (xmlChar * buf, int len, const xmlChar * msg, va_list ap)
Formats @msg and places result into @buf.
buf: | the result buffer. | len: | the result buffer length. | msg: | the message with printf formatting. | ap: | extra parameters for the message. | Returns: | the number of characters written to @buf or -1 if an error occurs. |
Function: xmlStrcasecmpint xmlStrcasecmp (const xmlChar * str1, const xmlChar * str2)
a strcasecmp for xmlChar's
str1: | the first xmlChar * | str2: | the second xmlChar * | Returns: | the integer result of the comparison |
Function: xmlStrcasestrconst xmlChar * xmlStrcasestr (const xmlChar * str, const xmlChar * val)
a case-ignoring strstr for xmlChar's
str: | the xmlChar * array (haystack) | val: | the xmlChar to search (needle) | Returns: | the xmlChar * for the first occurrence or NULL. |
Function: xmlStrcatxmlChar * xmlStrcat (xmlChar * cur, const xmlChar * add)
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'.
cur: | the original xmlChar * array | add: | the xmlChar * array added | Returns: | a new xmlChar * containing the concatenated string. |
Function: xmlStrchrconst xmlChar * xmlStrchr (const xmlChar * str, xmlChar val)
a strchr for xmlChar's
Function: xmlStrcmpint xmlStrcmp (const xmlChar * str1, const xmlChar * str2)
a strcmp for xmlChar's
str1: | the first xmlChar * | str2: | the second xmlChar * | Returns: | the integer result of the comparison |
Function: xmlStrdupxmlChar * xmlStrdup (const xmlChar * cur)
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'.
Function: xmlStrlenint xmlStrlen (const xmlChar * str)
length of a xmlChar's string
str: | the xmlChar * array | Returns: | the number of xmlChar contained in the ARRAY. |
Function: xmlStrncasecmpint xmlStrncasecmp (const xmlChar * str1, const xmlChar * str2, int len)
a strncasecmp for xmlChar's
str1: | the first xmlChar * | str2: | the second xmlChar * | len: | the max comparison length | Returns: | the integer result of the comparison |
Function: xmlStrncatxmlChar * xmlStrncat (xmlChar * cur, const xmlChar * add, int len)
a strncat for array of xmlChar's, it will extend @cur with the len first bytes of @add. Note that if @len < 0 then this is an API error and NULL will be returned.
cur: | the original xmlChar * array | add: | the xmlChar * array added | len: | the length of @add | Returns: | a new xmlChar *, the original @cur is reallocated if needed and should not be freed |
Function: xmlStrncatNewxmlChar * xmlStrncatNew (const xmlChar * str1, const xmlChar * str2, int len)
same as xmlStrncat, but creates a new string. The original two strings are not freed. If @len is < 0 then the length will be calculated automatically.
str1: | first xmlChar string | str2: | second xmlChar string | len: | the len of @str2 or < 0 | Returns: | a new xmlChar * or NULL |
Function: xmlStrncmpint xmlStrncmp (const xmlChar * str1, const xmlChar * str2, int len)
a strncmp for xmlChar's
str1: | the first xmlChar * | str2: | the second xmlChar * | len: | the max comparison length | Returns: | the integer result of the comparison |
Function: xmlStrndupxmlChar * xmlStrndup (const xmlChar * cur, int len)
a strndup for array of xmlChar's
cur: | the input xmlChar * | len: | the len of @cur | Returns: | a new xmlChar * or NULL |
Function: xmlStrstrconst xmlChar * xmlStrstr (const xmlChar * str, const xmlChar * val)
a strstr for xmlChar's
str: | the xmlChar * array (haystack) | val: | the xmlChar to search (needle) | Returns: | the xmlChar * for the first occurrence or NULL. |
Function: xmlStrsubxmlChar * xmlStrsub (const xmlChar * str, int start, int len)
Extract a substring of a given string
str: | the xmlChar * array (haystack) | start: | the index of the first char (zero based) | len: | the length of the substring | Returns: | the xmlChar * for the first occurrence or NULL. |
Function: xmlUTF8Charcmpint xmlUTF8Charcmp (const xmlChar * utf1, const xmlChar * utf2)
compares the two UCS4 values
utf1: | pointer to first UTF8 char | utf2: | pointer to second UTF8 char | Returns: | result of the compare as with xmlStrncmp |
Function: xmlUTF8Sizeint xmlUTF8Size (const xmlChar * utf)
calculates the internal size of a UTF8 character
utf: | pointer to the UTF8 character | Returns: | the numbers of bytes in the character, -1 on format error |
Function: xmlUTF8Strlenint xmlUTF8Strlen (const xmlChar * utf)
compute the length of an UTF8 string, it doesn't do a full UTF8 checking of the content of the string.
utf: | a sequence of UTF-8 encoded bytes | Returns: | the number of characters in the string or -1 in case of error |
Function: xmlUTF8Strlocint xmlUTF8Strloc (const xmlChar * utf, const xmlChar * utfchar)
a function to provide the relative location of a UTF8 char
utf: | the input UTF8 * | utfchar: | the UTF8 character to be found | Returns: | the relative character position of the desired char or -1 if not found |
Function: xmlUTF8StrndupxmlChar * xmlUTF8Strndup (const xmlChar * utf, int len)
a strndup for array of UTF8's
utf: | the input UTF8 * | len: | the len of @utf (in chars) | Returns: | a new UTF8 * or NULL |
Function: xmlUTF8Strposconst xmlChar * xmlUTF8Strpos (const xmlChar * utf, int pos)
a function to provide the equivalent of fetching a character from a string array
utf: | the input UTF8 * | pos: | the position of the desired UTF8 char (in chars) | Returns: | a pointer to the UTF8 character or NULL |
Function: xmlUTF8Strsizeint xmlUTF8Strsize (const xmlChar * utf, int len)
storage size of an UTF8 string the behaviour is not garanteed if the input string is not UTF-8
utf: | a sequence of UTF-8 encoded bytes | len: | the number of characters in the array | Returns: | the storage size of the first 'len' characters of ARRAY |
Function: xmlUTF8StrsubxmlChar * xmlUTF8Strsub (const xmlChar * utf, int start, int len)
Create a substring from a given UTF-8 string Note: positions are given in units of UTF-8 chars
utf: | a sequence of UTF-8 encoded bytes | start: | relative pos of first char | len: | total number to copy | Returns: | a pointer to a newly created string or NULL if any problem |
Daniel Veillard |