Format du fichier XML

MosaiqueDan Messages postés 9 Date d'inscription mercredi 22 novembre 2006 Statut Membre Dernière intervention 5 janvier 2007 - 5 janv. 2007 à 14:31
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 8 janv. 2007 à 07:32
Bonjour,

Je céé un nouveau fichier XML avec le code suivant :

Private Sub CommConfirmer_Click()
Dim xRacine As IXMLDOMElement
Dim xUtilisateur As IXMLDOMElement
Dim strDate As Date


strDate = Format(Now, "yyyy-mm-dd")




'documentXMLB.Load ("C:\Fichier\Accusé_réception_facture.xml") 'Loading of file XML


Set documentXMLB = Nothing


Set xRacine = documentXMLB.createElement("FACTURE")
documentXMLB.appendChild xRacine


Set xRacine = documentXMLB.selectSingleNode("FACTURE")


Set xUtilisateur = documentXMLB.createElement("NO_CLIENT")
xUtilisateur.Text = strnoclient
xRacine.appendChild xUtilisateur


Set xUtilisateur = documentXMLB.createElement("NO_SUCCURSALE")
xUtilisateur.Text = "001"
xRacine.appendChild xUtilisateur


Set xUtilisateur = documentXMLB.createElement("NO_FACTURE")
xUtilisateur.Text = lblnofacture
xRacine.appendChild xUtilisateur


documentXMLB.Save ("Z:\Reception\Confirmationfactures" & lblfournisseur & "\ARF" & strnoclient & "001_" & lblnofacture & ".xml")
'CommConfirmer.Visible = False
End Sub

Mais si j'ouvre mon fichier avec notepad toute les données sont sur la même ligne exemple :

<FACTURE><NO_CLIENT>16813</NO_CLIENT><NO_SUCCURSALE>001</NO_SUCCURSALE><NO_FACTURE>1260352</NO_FACTURE></FACTURE> 

Comment faire pour poduire un XML qui a le format suivant en l'ouvrant avec ntepad :

<FACTURE>
 <NO_CLIENT>16813</NO_CLIENT>
 <NO_SUCCURSALE>001</NO_SUCCURSALE>
 <NO_FACTURE>1260352</NO_FACTURE>
</FACTURE>

Merci

Daniel

5 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
5 janv. 2007 à 15:32
j'ignore a qui est dédié ton XML, mais il est parfaitement comprehensible, le passer sur plusieurs lignes facilite la lecture pour les humain, rien de plus.
au pire, lances le dans ton naviguateur, il sera sous la forme d'un arbre, utile pour le deboguer.

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
MosaiqueDan Messages postés 9 Date d'inscription mercredi 22 novembre 2006 Statut Membre Dernière intervention 5 janvier 2007
5 janv. 2007 à 15:38
Tu as raison en utilisant explorer il s'affiche correctement. Mais ce document doit alle chez plusieurs fourniseurs et un des fournisseurs m'indique qu'il ne peut lire correctement à cause du parsing. Lorsque que je reçois un fichier de ces fournisseurs et que je l'ouvre avec notepad ils sont dans le bon format mais je n'arrive pas à la faire moi-même...
0
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
5 janv. 2007 à 16:14
 Bonjour à tous

Avec un split....

Const Str = "<FACTURE><NO_CLIENT>16813</NO_CLIENT><NO_SUCCURSALE>001</NO_SUCCURSALE><NO_FACTURE>1260352</NO_FACTURE></FACTURE>"

oTab = Split(Str, "><")
For i=0 To UBound(oTab)
    result = result & vbCr & "<" & oTab(i) & ">"
Next
MsgBox Replace(Replace(result,"<<","<"),">>",">")

jean-marc
0
cavo789 Messages postés 168 Date d'inscription vendredi 9 janvier 2004 Statut Membre Dernière intervention 28 juillet 2009 1
5 janv. 2007 à 22:10
Petite info : Microsoft met à disposition un outil gratuit nommé XML Notepad.   Il permet d'afficher des fichiers XML avec une arborescence.

http://www.microsoft.com/downloads/details.aspx?FamilyID=72D6AA49-787D-4118-BA5F-4F30FE913628&displaylang=en

Christophe
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
8 janv. 2007 à 07:32
ton fournisseur est en cause, pour sur...

je crois qu'on peut utiliser un XMLWriter, ou qq chose comme ca. c'est un objet DOM...

enfin, il suffit d'une petite fonction pour faire le boulot...

une fois ton XML généré

tu parcoures ton arbre DOM. tu écris ensuite simplement chaque noeud (avec ses éventuels attributs)
puis, sur la même ligne, son CDATA.
s'il ne possède pas de noeud, on ecrit la balise de fermeture, et on passe a la ligne
s'il possède des noeuds enfants, on ajoute la fermeture de balise a la ligne suivante, etc, etc

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
Rejoignez-nous