20#include <ucommon-config.h>
29 return isalnum(c) || c ==
':' || c ==
'-' || c ==
'.' || c ==
'_';
78 while((
ch = fgetc(fp)) !=
EOF) {
112 else if(
ch ==
'[' &&
bufpos == 7 && !strncmp(
buffer,
"![CDATA", 7)) {
119 else if(
ch ==
'[' && !strncmp(
buffer,
"!DOCTYPE ", 9)) {
191 while((
ch = (uint8_t)*(buf++)) != 0) {
225 else if(
ch ==
'[' &&
bufpos == 7 && !strncmp(
buffer,
"![CDATA", 7)) {
232 else if(
ch ==
'[' && !strncmp(
buffer,
"!DOCTYPE ", 9)) {
334 else if(*data ==
'[' &&
bufpos == 7 && !strncmp(
buffer,
"![CDATA", 7)) {
337 else if(*data ==
'-' &&
bufpos == 2 && !strncmp(
buffer,
"!-", 2)) {
341 else if(*data ==
'[' && !strncmp(
buffer,
"!DOCTYPE ", 9)) {
376 else if(*data ==
'>' &&
dcount)
378 else if(*data ==
'>')
387 else if(
ecount && *data ==
'&') {
402 const char *data =
buffer;
427 else if(*data ==
'!') {
431 else if(*data ==
'?') {
432 if(!
strnicmp(data,
"?xml version=\"", 14)) {
457 attrib[0] = attrib[1] = NULL;
504 if(isspace(
buffer[len])) {
528 attrib[attr++] = NULL;
529 attrib[attr++] = NULL;
__LOCAL void putBuffer(char c)
bool parse(const char *cp)
Parse a stream buffer and return parser document completion flag.
__LOCAL void clearBuffer(void)
virtual ~XMLParser()
Destroy xml parser.
bool partial(const char *address, size_t size)
Parse a chunk of data and return parser completion flag.
__LOCAL bool parseTag(void)
bool end(void) const
End of document check.
virtual void startElement(const caddr_t name, caddr_t *attr)=0
Notify start of an element in the document.
virtual void endDocument(void)
Notify end of document event.
virtual void characters(const caddr_t text, size_t size)
Virtual to receive character text extracted from the document.
virtual void comment(const caddr_t text, size_t size)
Virtual to receive embedded comments in XML document being parsed.
virtual void endElement(const caddr_t name)=0
Notify end of an element in the document.
XMLParser(unsigned size=8192)
Create xml parser.
virtual void startDocument(void)
Notify start of document event.
enum ost::XMLParser::@8 state
Export interfaces for library interfaces.
int strnicmp(const char *s1, const char *s2, size_t size)
Common namespace for all ucommon objects.
bool eq(const struct sockaddr *s1, const struct sockaddr *s2)
Compare two socket addresses to see if equal.
static bool isElement(char c)