#include "SxPath.h"
int main()
{
  SxPathExpression *x1;
  SxPathExpression *x2;
  SxPathResult *xr1;
  SxmlNode *littleDoc;
  SxmlNode *r1;
  SxmlNodeList *l1;

  printf("--- test1\n");
  littleDoc=SxmlFromString("<a t=\"x\"><b>b1</b><b>b2</b><c>c1</c><c a=\"a1\">c2</c></a>");
  x1=SxPathExpressionCreate("doc@base=bib/descendant::titre");
  SxmlPrint(x1);
  putchar('\n');

  printf("--- test2\n");
  x2=SxPathExpressionCreate("a/1");
  SxmlPrint(x2);
  putchar('\n');

  printf("--- test3\n");
  xr1=SxPathFirstCompile("b/1");
  r1=SxPathFirstResultNode(xr1, littleDoc);
  SxmlPrint(r1);
  putchar('\n');

  printf("--- test4\n");
  xr1=SxPathFirstCompile("attribute::t");
  r1=SxPathFirstResultNode(xr1, littleDoc);
  SxmlPrint(r1);
  putchar('\n');

  printf("--- test5\n");
  xr1=SxPathSetCompile("c");
  l1=SxPathSetResultListCreate(xr1, littleDoc);
  SxmlReset(l1);
  while ((r1=SxmlNodeListNextNode(l1)))
    {
      SxmlPrint(r1);
      putchar('\n');
    }

  printf("--- test6\n");
  xr1=SxPathSetCompile("c@a=a1");
  l1=SxPathSetResultListCreate(xr1, littleDoc);
  SxmlReset(l1);
  while ((r1=SxmlNodeListNextNode(l1)))
    {
      SxmlPrint(r1);
      putchar('\n');
    }

  printf("--- test7\n");
  xr1=SxPathSetCompile("attribute::t");
  l1=SxPathSetResultListCreate(xr1, littleDoc);
  SxmlReset(l1);
  while ((r1=SxmlNodeListNextNode(l1)))
    {
      SxmlPrint(r1);
      putchar('\n');
    }
  exit (EXIT_SUCCESS);

}
