Bonjour
Je dois dans le cadre d'un développement avec un partenaire, générer des fichiers XML ayant un format simple, mais avec certaines spécificités.
Pour gagner du temps j'ai donc créé des requêtes SQL à partir desquelles je génère un fichier XML (merci WriteXML !) : mais voilà, le fichier en sortie ne correspond pas "tout-à-fait" à ce que je devrais avoir !
L'un des fichiers avoisine les 2 Mo...
Trois pistes s'offrent à moi :
1°) méthode "bourrin" : éditer le fichier généré comme un fichier texte, et le corriger ( )
2°) méthode "XPath" : éditer le fichier généré comme un fichier XML et le modifier en conséquence ( )
3°) méthode "que j'aimerais employer sans savoir si c'est possible" : paramétrer mon XMLTextWriter de manière à sortir "directement" le bon format avec WriteXML ! ( )
N'étant pas top niveau au niveau des manips de fichiers XML, la troisième méthode me brancherait mais je ne sais comment m'y prendre. J'ai bien entendu parcouru les nombreux tutos et codes sources sur le sujet, sans grande conviction...
Fichier obtenu via WriteXML (natif) :
Format demandé :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 <?xml version="1.0" standalone="yes"?> <DocumentElement> <BVA_FONCTION> <FCT_ID>1</FCT_ID> <FCT_LIBELLE>Comptable</FCT_LIBELLE> </BVA_FONCTION> <BVA_FONCTION> <FCT_ID>2</FCT_ID> <FCT_LIBELLE>Conseiller</FCT_LIBELLE> </BVA_FONCTION> <BVA_FONCTION> <FCT_ID>3</FCT_ID> <FCT_LIBELLE>Correspondant CercaSidéral</FCT_LIBELLE> </BVA_FONCTION> </DocumentElement>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 <?xml version="1.0" encoding="ISO-8859-1" ?> <dataroot> <BVA_FONCTION> <FCT_ID>1</FCT_ID> <FCT_LIBELLE>Comptable</FCT_LIBELLE> </BVA_FONCTION> <BVA_FONCTION> <FCT_ID>2</FCT_ID> <FCT_LIBELLE>Conseiller</FCT_LIBELLE> </BVA_FONCTION> <BVA_FONCTION> <FCT_ID>3</FCT_ID> <FCT_LIBELLE><![CDATA[Correspondant CercaSidéral]]></FCT_LIBELLE> </BVA_FONCTION> </dataroot>
En clair, il faut rajouter l'encoding, remplacer le dataroot mais surtout "envelopper" les valeurs contenant accents ou caractères spéciaux par CDATA
La seconde méthode sera mon choix si la troisième n'est pas possible, mais bon ça m'épate !
Une URL salvatrice ?...
Partager