Bonjour.
J'ai créé un programme en Langage C, qui crée un fichier XML avec sa DTD, sous Paradigm C++.
Mon problème est que je n'arrive pas à y inclure la valeur de ma variable cmd_0200 entre les deux balises <REGISTRATION>.
J'ai essayée pas de mal de chose, mais la je ne sais plus quoi faire.
Pouvez-vous m'aider, merci à tous.
Voici mon code de l'essai avec <!NOTIFICATION
/*
// introduire variable dans le fichier XML
*/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <dirent.h>
#include <dir.h>
FILE *create_file_xml = NULL;
FILE *create_file_dtd = NULL;
char page_dtd[5000];
char page_xml[5000];
char plaque[]={"9854 VZ 19"};
char carburant[]={"GO"};
char path_dir[25];
char path_xml[40];
char path_dtd[40];
char cmd_0200[]={"9854 VZ 19"};
void main(void)
{
if((strncmp(carburant,"ES",2)==0) || (strncmp(carburant,"GL",2)==0))
{
strcpy(path_dir,"\");
strcat(path_dir,carburant);
mkdir(path_dir);
strcat(path_dir,"\");
strcpy(path_xml,path_dir);
strcat(path_xml,plaque);
strcat(path_xml,".xml");
strcpy(path_dtd,path_dir);
strcat(path_dtd,"ES_GL.dtd");
if ((create_file_xml
fopen ( path_xml,"a")) NULL)
{
fprintf(stderr,"Fichier inexistant.\n");
}
else
{
strcpy(page_xml,"<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>\n"
"<!DOCTYPE VEHICULE SYSTEM "ES_GL.dtd">\n"
"\t<RESULTS VERSION="1.0">\n"
"\t\t<RESULTSHEADER>\n"
"\t\t\t<VEHICULE>\n"
"\t\t\t\t\n"
"\t\t\t\t\t<REGISTRATION>cmd_0200</REGISTRATION>\n"
"\t\t\t\t\t<FUEL1>ESS</FUEL1>\n"
"\t\t\t\t\n"
"\t\t\t</VEHICULE>\n"
"\t\t</RESULTSHEADER>\n"
"\t</RESULTS>\n");
fprintf(create_file_xml,"%s",page_xml);
}
fclose(create_file_xml);
if ((create_file_dtd
fopen ( path_dtd,"w")) NULL)
{
fprintf(stderr,"Fichier inexistant.\n");
}
else
{
strcpy(page_dtd,"<!ELEMENT RESULTS (RESULTSHEADER, RESULT+)>\n"
"\n"
"<!ATTLIST RESULTS\n "
" VERSION CDATA "1.0"\n"
">\n"
"\n"
"<!ELEMENT RESULTSHEADER (VEHICLE)>\n"
"\n"
"<!ELEMENT RESULT (TITLE, HEADER, SECTION+)>\n"
"\n"
"<!ATTLIST RESULT\n"
" OBJECT (EMISSION) #REQUIRED\n"
" METHOD (SMOKE | SMOKE_TURBO | SMOKE_OBD) #REQUIRED\n"
">\n"
"\n"
"<!ELEMENT VEHICLE (IDENT)>\n"
"\n"
"<!ELEMENT REGISTRATION (#PCDATA)>\n"
"\n"
"<!ELEMENT FUEL1 (#PCDATA)>\n"
"\n"
"<!NOTATION TXT SYSTEM "Texte">\n"
"\n"
"<!ENTITY cmd_0200 SYSTEM "Texte" NDATA TXT>\n");
fprintf(create_file_dtd,"%s",page_dtd);
}
fclose(create_file_dtd);
} // fin de if strncmp(carburant ESS...)
else if(strncmp(carburant,"GO",2)==0)
{
strcpy(path_dir,"\");
strcat(path_dir,carburant);
mkdir(path_dir);
strcat(path_dir,"\");
strcpy(path_xml,path_dir);
strcat(path_xml,plaque);
strcat(path_xml,".xml");
strcpy(path_dtd,path_dir);
strcat(path_dtd,"GO.dtd");
if ((create_file_xml
fopen ( path_xml,"a")) NULL)
{
fprintf(stderr,"Fichier inexistant.\n");
}
else
{
strcpy(page_xml, "<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>\n"
"<!DOCTYPE VEHICULE SYSTEM "GO.dtd">\n"
"\t<RESULTS VERSION="1.0">\n"
"\t\t<RESULTSHEADER>\n"
"\t\t\t<VEHICULE>\n"
"\t\t\t\t\n"
"\t\t\t\t\t<REGISTRATION>cmd_0200</REGISTRATION>\n"
"\t\t\t\t\t<FUEL1>GO</FUEL1>\n"
"\t\t\t\t\n"
"\t\t\t</VEHICULE>\n"
"\t\t</RESULTSHEADER>\n"
"\t</RESULTS>\n");
fprintf(create_file_xml,"%s",page_xml);
} if ((create_file_dtd
fopen ( path_dtd,"w")) NULL)
{
fprintf(stderr,"Fichier inexistant.\n");
}
else
{
strcpy(page_dtd,"<!ELEMENT RESULTS (RESULTSHEADER, RESULT+)>\n"
"\n"
"<!ATTLIST RESULTS\n "
" VERSION CDATA "1.0"\n"
">\n"
"\n"
"<!ELEMENT RESULTSHEADER (VEHICLE)>\n"
"\n"
"<!ELEMENT RESULT (TITLE, HEADER, SECTION+)>\n"
"\n"
"<!ATTLIST RESULT\n"
" OBJECT (EMISSION) #REQUIRED\n"
" METHOD (SMOKE | SMOKE_TURBO | SMOKE_OBD) #REQUIRED\n"
">\n"
"\n"
"<!ELEMENT VEHICLE (IDENT)>\n"
"\n"
"<!ELEMENT REGISTRATION (#PCDATA)>\n"
"\n"
"<!ELEMENT FUEL1 (#PCDATA)>\n"
"\n"
"<!NOTATION TXT SYSTEM "Texte">\n"
"\n"
"<!ENTITY cmd_0200 SYSTEM "Texte" NDATA TXT>\n");
fprintf(create_file_dtd,"%s",page_dtd);
}
fclose(create_file_dtd);
} // fin else if
else
{
printf("Type de carburant non conforme au gietnet(ES ou GO ou GL).\n");
}
}
Afficher la suite