Nuvola apps important.png Attention, suite à une faille de sécurité, la plupart des liens vers les serveurs d'exploration sont désactivés.

-

Wicri Lorraine:Démonstration chartes/Génération de modèle

De Wicri Lorraine
Théorème de Pythagore Démonstration sur les chartes en Lorraine
Cette page fait partie d'un ensemble démonstratif sur l'utilisation de technologies numériques sur la thématique des chartes en Lorraine .
Cette page introduit le programme de génération d'un modèle de conversion des transcriptions TEI
ChLor00031r.jpg
logo travaux Programme en cours de mise au point. Voir le résultat sur AMPLorr, charte FR AD088 E dpt 328 AA1 n 1.

Le programme de génération

Ce programme est spécifique à l'application chartes.

#include "SxmlNode.h"

int flagLigne1;

teiToWikiPrint(SxmlNode *teiNode)
{
  if (SxmlIsElement(teiNode))
    {
      SxmlNode *elemTei;
      if (SxmlNodeHasName(teiNode, "lb"))
	{
	  if (flagLigne1==1)flagLigne1=0;
	  else printf("\'\'");
	  printf ("\n:\'\'");
	  return;
	}
      else if  (SxmlNodeHasName(teiNode, "term"))
	{
	  printf("<abbr title=\"%s\">", SxmlGetAttribute(teiNode,"key"));
	}
      else if  (SxmlNodeHasName(teiNode, "placeName"))
	{
	  printf("[[%s|", SxmlGetAttribute(teiNode,"key"));
	}
      else if  (SxmlNodeHasName(teiNode, "persName"))
	{
	  printf("[[%s|", SxmlGetAttribute(teiNode,"key"));
	}
      SxmlReset(teiNode);
      while ((elemTei=SxmlNextNode(teiNode)))
	{
	  teiToWikiPrint(elemTei);
	}
      if (SxmlNodeHasName(teiNode, "p"))printf ("\'\'\n");
      else if  (SxmlNodeHasName(teiNode, "term")) printf ("</abbr>");
      else if  (SxmlNodeHasName(teiNode, "placeName")) printf ("]]");
      else if  (SxmlNodeHasName(teiNode, "persName")) printf ("]]");
    }
  else if (SxmlIsText(teiNode))
    {
      printf ("%s", SxmlNodeValue(teiNode));
    }

}

main ()
{
  SxmlNode *teiDoc;
  SxmlNode *teiBody;
  SxmlNode *teiText;
  SxmlNode *teiDiv;
  teiDoc=SxmlInputGetDocumentElement();
  teiText=SxmlGetFirstChildByTagName(teiDoc, "text");
  teiBody=SxmlGetFirstChildByTagName(teiText, "body");
  flagLigne1=1;
  teiToWikiPrint(teiBody);
}

Les commandes de génération

On notera l'appel à la commande SxmlUnIndent.

SxmlUnIndent -s < AMPLorrFRAD088_Edpt328_AA1_1r.xml   \
  | ./cvChartes