testURI.c
上传用户:sy_wanhua
上传日期:2013-07-25
资源大小:3048k
文件大小:2k
源码类别:

流媒体/Mpeg4/MP4

开发平台:

C/C++

  1. /*
  2.  * testURI.c : a small tester program for XML input.
  3.  *
  4.  * See Copyright for the status of this software.
  5.  *
  6.  * Daniel.Veillard@w3.org
  7.  */
  8. #ifdef WIN32
  9. #include "win32config.h"
  10. #else
  11. #include "config.h"
  12. #endif
  13. #include <stdio.h>
  14. #include <string.h>
  15. #include <stdio.h>
  16. #include <stdarg.h>
  17. #include <libxml/uri.h>
  18. int main(int argc, char **argv) {
  19.     int i, ret, arg = 1;
  20.     xmlURIPtr uri;
  21.     const char *base = NULL;
  22.     xmlChar *composite;
  23.     if ((!strcmp(argv[arg], "-base")) || (!strcmp(argv[arg], "--base"))) {
  24. arg++;
  25. base = argv[arg];
  26. if (base != NULL)
  27.     arg++;
  28.     }
  29.     uri = xmlCreateURI();
  30.     if (argv[arg] == NULL) {
  31. char str[1024];
  32.         while (1) {
  33.     /*
  34.      * read one line in string buffer.
  35.      */
  36.     if (fgets (&str[0], sizeof (str) - 1, stdin) == NULL)
  37.        break;
  38.     /*
  39.      * remove the ending spaces
  40.      */
  41.     i = strlen(str);
  42.     while ((i > 0) &&
  43.    ((str[i - 1] == 'n') || (str[i - 1] == 'r') ||
  44.     (str[i - 1] == ' ') || (str[i - 1] == 't'))) {
  45. i--;
  46. str[i] = 0;
  47.     }
  48.     if (i <= 0)
  49. continue;
  50.     ret = xmlParseURIReference(uri, str);
  51.     if (ret != 0)
  52. printf("%s : error %dn", str, ret);
  53.     else {
  54. xmlPrintURI(stdout, uri);
  55. printf("n");
  56.     }
  57.         }
  58.     } else {
  59. while (argv[arg] != NULL) {
  60.     if (base == NULL) {
  61. ret = xmlParseURIReference(uri, argv[arg]);
  62. if (ret != 0)
  63.     printf("%s : error %dn", argv[arg], ret);
  64. else {
  65.     xmlPrintURI(stdout, uri);
  66.     printf("n");
  67. }
  68.     } else {
  69. composite = xmlBuildURI((xmlChar *)argv[arg], (xmlChar *) base);
  70. if (base == NULL) {
  71. } else {
  72.     printf("%sn", composite);
  73.     xmlFree(composite);
  74. }
  75.     }
  76.     arg++;
  77. }
  78.     }
  79.     xmlFreeURI(uri);
  80.     xmlMemoryDump();
  81.     exit(0);
  82. }