| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
|
| #include <stdio.h> |
| #include <libxml/xmlreader.h> |
|
|
| #ifdef LIBXML_READER_ENABLED |
|
|
| static void processDoc(xmlTextReaderPtr readerPtr) { |
| int ret; |
| xmlDocPtr docPtr; |
| const xmlChar *URL; |
|
|
| ret = xmlTextReaderRead(readerPtr); |
| while (ret == 1) { |
| ret = xmlTextReaderRead(readerPtr); |
| } |
|
|
| |
| |
| |
| |
| |
| docPtr = xmlTextReaderCurrentDoc(readerPtr); |
| if (NULL == docPtr) { |
| fprintf(stderr, "failed to obtain document\n"); |
| return; |
| } |
| |
| URL = docPtr->URL; |
| if (NULL == URL) { |
| fprintf(stderr, "Failed to obtain URL\n"); |
| } |
|
|
| if (ret != 0) { |
| fprintf(stderr, "%s: Failed to parse\n", URL); |
| return; |
| } |
|
|
| printf("%s: Processed ok\n", (const char *)URL); |
| } |
|
|
| int main(int argc, char **argv) { |
| xmlTextReaderPtr readerPtr; |
| int i; |
| xmlDocPtr docPtr; |
|
|
| if (argc < 2) |
| return(1); |
|
|
| |
| |
| |
| |
| |
| LIBXML_TEST_VERSION |
|
|
| |
| |
| |
| |
| readerPtr = xmlReaderForFile(argv[1], NULL, 0); |
| if (NULL == readerPtr) { |
| fprintf(stderr, "%s: failed to create reader\n", argv[1]); |
| return(1); |
| } |
| processDoc(readerPtr); |
|
|
| |
| |
| |
| for (i=2; i < argc; ++i) { |
| xmlReaderNewFile(readerPtr, argv[i], NULL, 0); |
| if (NULL == readerPtr) { |
| fprintf(stderr, "%s: failed to create reader\n", argv[i]); |
| return(1); |
| } |
| processDoc(readerPtr); |
| } |
|
|
| |
| |
| |
| |
| |
| |
| docPtr = xmlTextReaderCurrentDoc(readerPtr); |
| if (docPtr != NULL) |
| xmlFreeDoc(docPtr); |
|
|
| |
| |
| |
| xmlFreeTextReader(readerPtr); |
|
|
| return(0); |
| } |
|
|
| #else |
| int main(void) { |
| fprintf(stderr, "xmlReader support not compiled in\n"); |
| return(0); |
| } |
| #endif |
|
|