Wicri Lorraine:Démonstration chartes/Génération de modèle
De Wicri Lorraine
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