2011-09-16 6 views
1

Lors de la génération d'am xml en C à l'aide de fprintf(), que faut-il garder à l'esprit? Je l'utilise, mais je suis confronté à des problèmes lors de l'ouverture du fichier XML dans IE; Cependant, dans n'importe quel éditeur, il montre le contenu approprié.Génération XML à l'aide de fprintf

code

int WriteXmlElement(const char* filename, const char* element, int iTextAssociated) 
{ 
    FILE *fp = NULL; 

    fp = fopen(filename, "a+"); 
    if(fp != NULL) 
    { 
     fprintf(fp, "<%s>\n",element); 
     fprintf(fp,"</%s>\n" , element); 

     fclose(fp); 
     return 0; 
    } 
    else 
     return -1; 

} 

XML dans IE

<?xml version="1.0" encoding="UTF-8" ?> 
<Group /> 

XML dans un éditeur

<?xml version="1.0" encoding="UTF-8" ?> 
<Group> </Group> 
+0

Veuillez préciser la portée de votre question. "Ce que je devrais garder à l'esprit" est très large et pourrait impliquer de nombreuses choses. Donnez-nous quelque chose sur lequel nous concentrer. –

+0

Bien sûr. J'ai utilisé deux instructions fprintf dans mon code pour imprimer et après l'en-tête xml. Maintenant, quand j'ouvre mon xml en utilisant IE, je vois l'en-tête xml suivi par (ce qui est faux), alors que tout éditeur affiche le contenu approprié. – user911747

+0

Qu'en est-il de l'affichage de code et de sortie? –

Répondre

2

Le XML est généré jus t bien. Internet Explorer choisit de le réinterpréter en refacturant automatiquement les balises vides du formulaire <foo></foo> en seulement <foo/> à des fins d'affichage (il ne modifie pas le fichier sur le disque). Si vous voulez être sûr que le fichier XML que vous générez a le bon contenu, il suffit de le regarder dans un éditeur de texte ordinaire au lieu de IE.

+0

Merci! Je vais essayer d'ajouter plus de nœuds à mon nœud parent (groupe) et ensuite vérifier si IE s'affiche correctement. – user911747

0

la façon dont vous faites est la façon la plus simple ..mais je préfère que vous utilisiez http://www.minixml.org/

votre chemin assurez-vous que cette chose 1> chaque nœud doit être fermé pour

2> si vous n'écrivez rien entre & puis mettez un espace entre eux (un navigateur affiche une erreur si vous n'écrivez rien entre-temps)