/*   -*- coding: utf-8 -*-  */

#include <stdio.h>
#include "SxmlNode.h"

void printElementL(SxmlNode *l1)
{
  if (!l1)return;
  SxmlNode *ge;
  printf("<l>");
  SxmlReset(l1);
  while ((ge=SxmlNextNode(l1)))
    {
      if(SxmlNodeHasName(ge,"g"))
	{
	  SxmlNode *k1;
	  SxmlNode *l2;
	  printf("<g>");
	  k1=SxmlGetFirstChildByTagName(ge,"k");
	  l2=SxmlGetFirstChildByTagName(ge,"l");
	  SxmlPrint(SxmlFirstChild(k1));
	  if (l2) printElementL(l2);
	  printf("</g>");
	  continue;
	}
      if(SxmlNodeHasName(ge,"i"))
	{
	  SxmlPrint(SxmlFirstChild(ge));
	}
    }
  printf("</l>");
}

SxmlNode *inputDoc;
int main ()
{
  while ((inputDoc=SxmlInputGetDocumentElement()))
    {
      SxmlNode *k;
      SxmlNode *l;
      k=SxmlGetFirstChildByTagName(inputDoc,"k");
      l=SxmlGetFirstChildByTagName(inputDoc,"l");
      printf("%s\t", SxmlLeafText(k));
      printElementL(l);
      printf ("\n");
     }

  exit(EXIT_SUCCESS);
}
