122 #ifndef __INCLUDE_XML_NODE__
123 #define __INCLUDE_XML_NODE__
136 #if defined(WIN32) || defined(UNDER_CE) || defined(_WIN32) || defined(WIN64) || defined(__BORLANDC__)
144 #ifdef _USE_XMLPARSER_DLL
146 #define XMLDLLENTRY __declspec(dllexport)
148 #define XMLDLLENTRY __declspec(dllimport)
159 #define XML_NO_WIDE_CHAR
160 #define strcasecmp(a,b) stricmp(a,b)
161 #define strncasecmp(a,b,c) _strnicmp(a,b,c)
163 #define _ftime(a) ftime(a)
164 #define _strnicmp(a,b,c) strnicmp(a,b,c)
165 #define _errno errno#endif
168 #ifdef XML_NO_WIDE_CHAR
177 #ifndef XML_NO_WIDE_CHAR
185 #define _CXML(c) L ## c
186 #define XMLCSTR const wchar_t *
187 #define XMLSTR wchar_t *
188 #define XMLCHAR wchar_t
191 #define XMLCSTR const char *
192 #define XMLSTR char *
341 XMLSTR createXMLString(
int nFormat=1,
int *pnSize=NULL)
const;
349 const char *encoding=NULL,
350 char nFormat=1)
const;
362 XMLCSTR getText(
int i=0)
const;
365 XMLNode getChildNode(
int i=0)
const;
378 int nChildNode()
const;
380 XMLCSTR getAttributeName(
int i=0)
const;
381 XMLCSTR getAttributeValue(
int i=0)
const;
385 int nAttribute()
const;
389 int nElement()
const;
390 char isEmpty()
const;
391 char isDeclaration()
const;
452 void deleteNodeContent();
454 void deleteAttribute(
int i=0);
455 void deleteAttribute(
XMLCSTR lpszName);
457 void deleteText(
int i=0);
458 void deleteText(
XMLCSTR lpszValue);
459 void deleteClear(
int i=0);
460 void deleteClear(
XMLCSTR lpszValue);
529 char_encoding_error=0,
530 char_encoding_UTF8=1,
531 char_encoding_legacy=2,
532 char_encoding_ShiftJIS=3,
533 char_encoding_GB2312=4,
534 char_encoding_Big5=5,
595 static XMLCharEncoding guessCharEncoding(
void *
buffer,
int bufLen,
char useXMLEncodingAttribute=1);
629 char parseClearTag(
void *px,
void *pa);
630 char maybeAddTxT(
void *pa,
XMLCSTR tokenPStr);
631 int ParseXMLElement(
void *pXML);
633 int indexText(
XMLCSTR lpszValue)
const;
634 int indexClear(
XMLCSTR lpszValue)
const;
639 void emptyTheNode(
char force);
641 static int CreateXMLStringR(
XMLNodeData *pEntry,
XMLSTR lpszMarker,
int nFormat);
746 static int encodeLength(
int inBufLen,
char formatted=0);
753 XMLSTR encode(
unsigned char *inByteBuf,
unsigned int inByteLen,
char formatted=0);
763 unsigned char* decode(
XMLCSTR inString,
int *outByteLen=NULL,
XMLError *xe=NULL);
769 static unsigned char decode(
XMLCSTR inString,
unsigned char *outByteBuf,
int inMaxByteOutBuflen,
XMLError *xe=NULL);
774 void alloc(
int newsize);
GLubyte GLubyte GLubyte a
GLuint const GLchar * name
GLsizei GLsizei GLchar * source
XMLDLLENTRY void freeXMLString(XMLSTR t)
to free the string allocated inside the "stringDup" function or the "createXMLString" function.
XMLDLLENTRY XMLSTR stringDup(XMLCSTR source, int cbData=-1)
Duplicate (copy in a new allocated buffer) the source string.
XMLDLLENTRY int xmltoi(XMLCSTR xmlString, int defautValue=0)
XMLDLLENTRY XMLCSTR xmltoa(XMLCSTR xmlString, XMLCSTR defautValue=_CXML(""))
XMLDLLENTRY long xmltol(XMLCSTR xmlString, long defautValue=0)
XMLDLLENTRY XMLCHAR xmltoc(XMLCSTR xmlString, XMLCHAR defautValue=_CXML('\0'))
XMLDLLENTRY char xmltob(XMLCSTR xmlString, char defautValue=0)
XMLDLLENTRY double xmltof(XMLCSTR xmlString, double defautValue=.0)
Structure for XML attribute.
Structure for XML clear (unformatted) node (usually comments)
XMLAttribute * pAttribute
struct XMLNodeDataTag * pParent
This structure is given by the function XMLNode::enumContents.
enum XMLElementType etype
This dictates what's the content of the XMLNodeContent.
Main Class representing a XML node.
struct XMLNode::XMLNodeDataTag XMLNodeData
XMLCharEncoding
Enumeration for XML character encoding.
static XMLNode emptyXMLNode
XMLNode(struct XMLNodeDataTag *pParent, XMLSTR lpszName, char isDeclaration)
Constructors are protected, so use instead one of: XMLNode::parseString, XMLNode::parseFile,...
static XMLClear emptyXMLClear
static XMLAttribute emptyXMLAttribute
Structure used to obtain error details if the parse fails.
static char dropWhiteSpace
static XMLNode::XMLCharEncoding characterEncoding
static char removeCommentsInMiddleOfText
static char guessWideCharChars
XMLElementType
Enumeration used to manage type of data. Use in conjunction with structure XMLNodeContents.
struct XMLResults XMLResults
Structure used to obtain error details if the parse fails.
struct XMLDLLENTRY XMLNode XMLNode
Main Class representing a XML node.
struct XMLClear XMLClear
Structure for XML clear (unformatted) node (usually comments)
struct XMLAttribute XMLAttribute
Structure for XML attribute.
int XMLElementPosition
XMLElementPosition are not interchangeable with simple indexes.
XMLError
Enumeration for XML parse errors.
@ eXMLErrorCannotWriteFile
@ eXMLErrorUnexpectedToken
@ eXMLErrorMissingEndTagName
@ eXMLErrorCharacterCodeAbove255
@ eXMLErrorUnmatchedEndTag
@ eXMLErrorCharConversionError
@ eXMLErrorFirstTagNotFound
@ eXMLErrorBase64DataSizeIsNotMultipleOf4
@ eXMLErrorCannotOpenWriteFile
@ eXMLErrorUnmatchedEndClearTag
@ eXMLErrorMissingTagName
@ eXMLErrorBase64DecodeBufferTooSmall
@ eXMLErrorUnknownCharacterEntity
@ eXMLErrorBase64DecodeTruncatedData
@ eXMLErrorBase64DecodeIllegalCharacter
struct XMLNodeContents XMLNodeContents
This structure is given by the function XMLNode::enumContents.