| 77 | |
| 78 | |
| 79 | xode xode_from_str(char *str, int len) |
| 80 | { |
| 81 | XML_Parser p; |
| 82 | xode *x, node; /* pointer to an xmlnode */ |
| 83 | |
| 84 | if(NULL == str) |
| 85 | return NULL; |
| 86 | |
| 87 | if(len == -1) |
| 88 | len = strlen(str); |
| 89 | |
| 90 | x = malloc(sizeof(void *)); |
| 91 | |
| 92 | *x = NULL; /* pointer to NULL */ |
| 93 | p = XML_ParserCreate(NULL); |
| 94 | XML_SetUserData(p, x); |
| 95 | XML_SetElementHandler(p, _xode_expat_startElement, _xode_expat_endElement); |
| 96 | XML_SetCharacterDataHandler(p, _xode_expat_charData); |
| 97 | if(!XML_Parse(p, str, len, 1)) |
| 98 | { |
| 99 | /* jdebug(ZONE,"xmlnode_str_error: %s",(char *)XML_ErrorString(XML_GetErrorCode(p)));*/ |
| 100 | xode_free(*x); |
| 101 | *x = NULL; |
| 102 | } |
| 103 | node = *x; |
| 104 | free(x); |
| 105 | XML_ParserFree(p); |
| 106 | return node; /* return the xmlnode x points to */ |
| 107 | } |
| 108 | |
| 109 | xode xode_from_strx(char *str, int len, int *err, int *pos) |
| 110 | { |
nothing calls this directly
no test coverage detected