s'il vous plais je veut savoir comment récupérer des ficher XML en c , si il y a une bibliothèque ou un type de fichier précis j’aimerai bien l'on savoir et Si quelqu’un peut m'aider ça serai cool! Merci..
-----
s'il vous plais je veut savoir comment récupérer des ficher XML en c , si il y a une bibliothèque ou un type de fichier précis j’aimerai bien l'on savoir et Si quelqu’un peut m'aider ça serai cool! Merci..
Pas très dur à trouver. En tapant "xml lib" dans un moteur de recherche on trouve ceci par exemple:
http://www.xmlsoft.org/
merci M.jack moi je veux un exemple sur un traitement d'un fichier XML
si ta quoi que se soit j'aimrai bien que tu les partage ,merci d'avance
Décidément, il va falloir que tu travailles ton autonomie:
http://www.xmlsoft.org/example.html
merci ,voila M jack je vais vous mètre au poings j'ai une api qui rend des fichiers XML après l'envoie d'une requête http. j'ai écrie un programme en c mais le problème est la réception de se fichier XML .
c'est pour ca que j'ai demande les lib pour les integrer dans include ,et en suit la gestion des fichiers XML.Code:#include<stdio.h> #include<stdlib.h> #include<sys/types.h> #include<sys/socket.h> #include<netinet/in.h> #include<arpa/inet.h> #include<errno.h> #include<string.h> #include<unistd.h> char requet[1000]; char adresse_ip[15]; int n_port; struct sockaddr_in addl, addd; int so,bi,con; int l=sizeof(struct sockaddr); void http(char requet[]) { while( strcmp(requet,"")!=0) { send(so,requet,strlen(requet),0); recv(????); } }
merci pour le coup de pouse que tu me donne
Dernière modification par Jack ; 28/04/2015 à 11h55. Motif: balises code
Je ne vois pas trop le contenu de la requête, alors je ne vois pas comment tu pourrais recevoir quelque chose.
la requete est comme suit https://192.168.3.240:8443/cdrapi?fo...L&caller=1000;
je vais la traite dans le main()
voila tu le code M.jack merci bcpCode:#include<stdio.h> #include<stdlib.h> #include<sys/types.h> #include<sys/socket.h> #include<netinet/in.h> #include<arpa/inet.h> #include<errno.h> #include<string.h> #include<unistd.h> char requet[1000]; char adresse_ip[15]; int n_port; struct sockaddr_in addl, addd; int so,bi,con; int l=sizeof(struct sockaddr); void http(char requet[]) { while( strcmp(requet,"")!=0) { send(so,requet,strlen(requet),0); } } int main() { char tt=[100]; bzero(adresse_ip,15); n_port=0; bzero(&addd,l); bzero(&addl,l); printf("saisir l'@ ip"); scanf("%s",adresse_ip); printf("\nSaisir le numero de port : "); scanf("%d",&n_port); so=socket(PF_INET,SOCK_STREAM,0); if(so< 0) { perror("ERROR : Socket\n"); return 0 ; } addl.sin_family=AF_INET; bi=bind(so,(struct sockaddr *)&addl,l); if(err != 0) { perror("\nbind"); return 0 ; } addd.sin_family = AF_INET; addd.sin_port=htons(N_PORT); addd.sin_addr.s_addr=inet_addr(adresse_IP); con=connect(so,(struct sockaddr*)&addd,l); if(con<0){ perror("ERROR: CONNECT\n"); return 0; } requet=adresse_ip; requet=strcat(requet,n_port); printf("donner votre traitement"); scanf("%s",tt); requet=strcat(requet,tt); http(requet); close pc; }
Dernière modification par JPL ; 28/04/2015 à 19h14. Motif: Ajout de la balise Code (#)
La présentation du code pique les yeux. Je t'ai déjà ajouté les balises code une fois. Je veux bien être gentil, mais il ne faut pas exagérer ...
s'il vous plais ,quelle balises code
Dans l'éditeur en mode avancé c'est le symbole # de la barre d'outils.
Rien ne sert de penser, il faut réfléchir avant - Pierre Dac
Et il faudra soigner l'indentation pour faciliter la relecture et la maintenance du code. Ce sera aussi une marque de respect pour les éventuels lecteurs.
ok M.jack j'ai pris tes paroles en considération . s'il vous plais t'ais une solution pour l'accueil du fichier XML par recv
Il faut dire que tu n'est pas trop clair sur tes intentions. Apparemment, tu ouvres une socket, tu te connectes à un serveur, tu envoies une requête qu'on ne connait toujours pas bien que je l'ai déjà demandé dans mon message 7, et tu veux recevoir la réponse avec recv (que je ne vois pas dans ton code).
Pourquoi n'essaies-tu pas donc d'utiliser recv?
j'ai pas essaie recv puisque je sais pas comment accueillir la réponse en forma XML .
la requête envoie est « https://192.168.3.240:8443/cdrapi?fo...ML&caller=1000 »
Non, ce que tu donnes est une url. Ce que je te demande c'est la requête http que tu envoies au serveur. C'est tout de même ton code :j'ai pas essaie recv puisque je sais pas comment accueillir la réponse en forma XML .
la requête envoie est « https://192.168.3.240:8443/cdrapi?fo...ML&caller=1000 »
Code:send(so,requet,strlen(requet),0);
Tout dépend de ce que le serveur va te renvoyer. S'il te renvoie des données au format XML, tu recevras des données au format XML.j'ai pas essaie recv puisque je sais pas comment accueillir la réponse en forma XML
la requete M.jack est cdrapi?format=XML&caller=1000
a propos de recv je sais pas le syntaxe puisque je vais recevoir un fichier xml.
M.jack , j’ai déjà lu des documents a propos de resv mais j’ai pas eu l’occasion de lire un document sur la syntaxe de recv, pour recevoir un fichier, c’est pour ca que je demande ton aide s’il vous plais.
tu tapes "man recv" dans ton navigateur.mais j’ai pas eu l’occasion de lire un document sur la syntaxe de recv
Tu dis que tu as envoyé une requête http pour que le serveur te retourne le fichier. Je n'ai jamais essayé, mais je suppose qu'il suffit de récupérer le contenu du fichier dans le buffer de réception.pour recevoir un fichier