| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | #include <stdio.h> |
| | #include <libxml/xmlreader.h> |
| |
|
| | #ifdef LIBXML_READER_ENABLED |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | static void |
| | processNode(xmlTextReaderPtr reader) { |
| | const xmlChar *name, *value; |
| |
|
| | name = xmlTextReaderConstName(reader); |
| | if (name == NULL) |
| | name = BAD_CAST "--"; |
| |
|
| | value = xmlTextReaderConstValue(reader); |
| |
|
| | printf("%d %d %s %d %d", |
| | xmlTextReaderDepth(reader), |
| | xmlTextReaderNodeType(reader), |
| | name, |
| | xmlTextReaderIsEmptyElement(reader), |
| | xmlTextReaderHasValue(reader)); |
| | if (value == NULL) |
| | printf("\n"); |
| | else { |
| | if (xmlStrlen(value) > 40) |
| | printf(" %.40s...\n", value); |
| | else |
| | printf(" %s\n", value); |
| | } |
| | } |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | static void |
| | streamFile(const char *filename) { |
| | xmlTextReaderPtr reader; |
| | int ret; |
| |
|
| | reader = xmlReaderForFile(filename, NULL, 0); |
| | if (reader != NULL) { |
| | ret = xmlTextReaderRead(reader); |
| | while (ret == 1) { |
| | processNode(reader); |
| | ret = xmlTextReaderRead(reader); |
| | } |
| | xmlFreeTextReader(reader); |
| | if (ret != 0) { |
| | fprintf(stderr, "%s : failed to parse\n", filename); |
| | } |
| | } else { |
| | fprintf(stderr, "Unable to open %s\n", filename); |
| | } |
| | } |
| |
|
| | int main(int argc, char **argv) { |
| | if (argc != 2) |
| | return(1); |
| |
|
| | |
| | |
| | |
| | |
| | |
| | LIBXML_TEST_VERSION |
| |
|
| | streamFile(argv[1]); |
| |
|
| | return(0); |
| | } |
| |
|
| | #else |
| | int main(void) { |
| | fprintf(stderr, "XInclude support not compiled in\n"); |
| | return(0); |
| | } |
| | #endif |
| |
|