LabWindows/CVI

cancel
Showing results for 
Search instead for 
Did you mean: 

Supprimer la balise contenant le nom du fichier XML

Bonjour,

 

Je souhaite générer un fichier xml en utilisant l'API CVIXML de Labwindows/CVI 7.0 malheureusement le fichier de sortie contient une balise correspondant au nom du fichier xml.

 

Par exemple, lorsque je génére le fichier test.xml, une balise <test.xml> encapsule l'ensemble de mon document xml.

 

D'autre part, les valeurs possibles du paramètre formatDoc de la fonction CVIXMLSaveDocument.

 

La valeur par défaut est 0.

La valeur "1" permet de mettre des retours à la ligne entre chaque contenu.

 

Merci d'avance.

0 Kudos
Message 1 of 6
(3,822 Views)

Bonjour,

 

L'option formatDoc permet de préciser qui doit s'occuper du formatage du fichier: Microsoft XML DOM lorsqu'il est à 0 ou Labwindows lorsqu'il est à 1.

 

Comment utiliser vous l'api CVIXML? Cette API permet de générer un fichier XML en fonction des arguments que vous lui passer. Vous devez avoir quelque part dans votre codela fonction CVIXMLSetElementValue avec le nom de votre fichier.

 

Cordialement,

0 Kudos
Message 2 of 6
(3,807 Views)

Merci pour votre réponse.

 

Mais je n'ajoute en aucun cas la balise avec le nom du fichier.

 

Il semble que cela soit ajouter par MSXML_IXMLDOMDocumentSave.

 

Si tu fais un programme simple avec les deux fonctions à la suite:

 

MSXML_IXMLDocumentLoad(filePath1, &document);

 

MSXML_IXMLDocumentSave(document, NULL, filePath2);

 

Tu remarqueras que le fichier généré est différent et contient le nom du fichier comme balise.

 

Connaissez-vous une méthode pour générer un fichier xml sans la balise contenant le nom du fichier xml?

 

 

 

 

 

 

 

0 Kudos
Message 3 of 6
(3,803 Views)

Effectivement cette fonction rajoute cette balise.

 

Vous pouvez utiliser la fonction "CVIXMLSaveDocument" qui permet d'enregistrer un format XML.

Vous avez egalement un exemple dans CVI dans sample/toolbox/XMLSamples.cws de l'utilisation de toutes les fonctions associées à cette API.

 

Cordialement,

0 Kudos
Message 4 of 6
(3,799 Views)

Bonjour,

 

Je parlais de cette fonction CVIXMLDocumentSave qui ajoute cette balise.

 

Je trouve cela dommage que cette fonction ajoute le nom du fichier comme balise principale.

 

Faites le test de ce code suivant:

 

CVIXMLLoadDocument(filePath, &Document);

CVIXMLDocumentSave(document,1,filePath);

 

Vous verrez par vous même.

 

Cordialement,

0 Kudos
Message 5 of 6
(3,796 Views)

Bonjour,

 

J'ai testé le code suivant:

#include "cvixml.h"
#include <userint.h>
#include <cvirte.h>

static CVIXMLDocument xmlDoc;
static CVIXMLElement newElement;
static CVIXMLElement rootElement;

int main (int argc, char *argv[])
{
 

 char File_path[MAX_PATHNAME_LEN];
 if (InitCVIRTE (0, argv, 0) == 0)
  return -1;    /* out of memory */
 
 CVIXMLLoadDocument ("ni.xml", &xmlDoc);
 
 //CVIXMLGetRootElement (xmlDoc, &rootElement);
 //CVIXMLNewElement (rootElement, -1, "newTag", &newElement);
 //CVIXMLSetElementValue (newElement, "3.141592");
 
 //CVIXMLDiscardElement (newElement);
 //CVIXMLDiscardElement (rootElement);
 
 CVIXMLSaveDocument (xmlDoc, 0, "ni.xml");
 
 CVIXMLDiscardDocument (xmlDoc);
                                 
 
 return 0;
}

 

Je lis bien le document XML et je ne vois pas le tag dont vous parlez.

 

Cordialement,

0 Kudos
Message 6 of 6
(3,785 Views)