Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[ WDx ] Logiciel d'analyse d'un fichier XML

9 réponses
Avatar
Georges Peyre
Bonjour,

Je recherche un logiciel qui me permettrait d'analyser un fichier XML
et surtout de m'indiquer dans son rapport si la structure XML est
correct et surtout, si elle est incorrecte, quelle est la ligne de
l'anomalie

Cordialement

--
Elle est pas belle la vie ?

9 réponses

Avatar
Romain PETIT
Georges Peyre a utilisé son clavier pour écrire :
Bonjour,



Bonjour,

Je recherche un logiciel qui me permettrait d'analyser un fichier XML et
surtout de m'indiquer dans son rapport si la structure XML est correct et
surtout, si elle est incorrecte, quelle est la ligne de l'anomalie



Le "logiciel" existe : il s'agit de IE et d'un de ses composant (entre
autre) parser (version 5 et supérieures).
Plus de détails ici : http://msdn.microsoft.com/xml/default.aspx et
particulièrement ce que tu recherches :
http://msdn.microsoft.com/msdnmag/issues/0500/xml/

Ci-dessous un exemple dont tu peux t'inspirer (extrait d'une classe
qui traite un fichier comme celui-ci : http://tinyurl.com/bxs8p)
Tiens au passage à propos de ce thread, je m'excuse auprès de Michel
pour ma non-réponse, mais son message n'a pas été relayé sur le serveur
news de free) :

Problème pour cette méthode : en ce qui concerne la libération de
l'objet OLE (comme la plupart des objet OLE), la libération de mémoire
n'est pas totale, donc attention en cas de traitement de nombreux
fichiers...
De plus, je ne suis pas certain que tu aies la ligne exacte du code XML
en cas d'erreur, fais des essais.


PROCEDURE CXQ200_mfDecodeXML(LOCAL sContenuXML)
:CX_sProc = "CXQ200::CXQ200_mfDecodeXML("+sContenuXML+")"
// sContenuXML contient le code XML complet
sMessageARenvoyer est une chaîne
eRes est un entier

QUAND EXCEPTION DANS
//oXML est un objet automation "Msxml2.DOMDocument"
// équivalent à la syntaxe suivante mais cette dernière permet une
libération explicite
oXML est un objet OLE dynamique
oXML = allouer un objet automation "Msxml2.DOMDocument"
//Chargement du code source XML
//pour charger directement un fichier : oXML>>load("C:testXML.xml")
eRes = oXML>>loadXML(sContenuXML)
// Erreur lors du chargement ?
SI PAS eRes ALORS
:CX_mpErr("Erreur lors du chargement XML :
raison="+oXML>>parseError>>reason())
SINON
// mode asynchrone
oXML>>async = OLEFalse

// selon la racine du document
SELON Majuscule(oXML>>documentElement>>baseName)

// Attention, la variable sMessageAREnvoyer est passée par référence
// Elle contient la réponse au format XML

CAS "SA" // c'est un résultat (pas de réponse à renvoyer)
//traitement1

CAS "SIQ" // c'est un query, réponse dossier ou rien
//traitement2

CAS "IRISPING" // C'est un ping, reponse ping
//traitement3

AUTRES CAS //pas de réponse
:CX_mpErr("Erreur, message inconnu ou non géré")
FIN
FIN
libérer oXML
FAIRE
:CX_mpErr("Erreur exception dans "+:CX_sProc+"
"+ExceptionInfo(errMessage))
FIN

RENVOYER sMessageARenvoyer

--
Romain PETIT
http://cerbermail.com/?O16kfXOFcq
(cliquez sur le lien ci-dessus pour me contacter en privé)
Avatar
Roumegou Eric
Romain PETIT a utilisé son clavier pour écrire :
Georges Peyre a utilisé son clavier pour écrire :
Bonjour,



Bonjour,

Je recherche un logiciel qui me permettrait d'analyser un fichier XML et
surtout de m'indiquer dans son rapport si la structure XML est correct et
surtout, si elle est incorrecte, quelle est la ligne de l'anomalie





Si tu as dreamweaver, cela le fait aussi.

--
Eric Roumégou
http://cerbermail.com/?TSoulBerPA
(cliquez sur le lien ci-dessus pour me contacter en privé)
Avatar
Georges Peyre
Bonjour Romain

Romain PETIT a couché sur son écran :
SI PAS eRes ALORS
:CX_mpErr("Erreur lors du chargement XML :
raison="+oXML>>parseError>>reason())
SINON



De plus, je ne suis pas certain que tu aies la ligne exacte du code XML en
cas d'erreur, fais des essais



Tu as raison : lorsque la commande XMLDocument sort par une erreur ( je
ne sais pas laquelle ) je lance ta procédure qui s'exécute et me
précise un peu plus l'erreur ( voir message ligne ci-après ) :
Erreur lors du chargement XML : raison=Aucun espace blanc n'est
autorisé à cet emplacement. <r> <n>

Malheureusement, le problème est que je ne sais pas ou se trouve cet
espace blanc

Cordialement

--
Elle est pas belle la vie ?
Avatar
Georges Peyre
Bonjour Eric

Roumegou Eric avait prétendu :
Si tu as dreamweaver, cela le fait aussi.



En résumé mon problème réside dans le fait que le fichier XML que je
traite a été écrit et envoyé par un site quelconque et que je dois le
lire et en extraire les infos.

Cordialement

--
Elle est pas belle la vie ?
Avatar
Romain PETIT
Georges Peyre a formulé ce lundi :
Bonjour Romain


[...]
Malheureusement, le problème est que je ne sais pas ou se trouve cet espace
blanc



En cherchant un peu plus :
http://tinyurl.com/8223p
ou
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/xmlsdk/html/fdc6ff87-3cfb-4aa0-8bb6-d8c1acf9684e.asp

Tu devrais pourvoir récupérer la ligne avec :

eLigne est un entier
eLigne = oXML>>parseError>>linepos()

A+

--
Romain PETIT
http://cerbermail.com/?O16kfXOFcq
(cliquez sur le lien ci-dessus pour me contacter en privé)
Avatar
Romain PETIT
Georges Peyre a formulé ce lundi :
Bonjour Romain


[...]
Malheureusement, le problème est que je ne sais pas ou se trouve cet espace
blanc



En cherchant un peu plus :
http://tinyurl.com/8223p
ou
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/xmlsdk/html/fdc6ff87-3cfb-4aa0-8bb6-d8c1acf9684e.asp

Tu devrais pourvoir récupérer la ligne, la position ainsi que la
position absolue dans le fichier avec :

eLigne, ePositionLigne, ePosAbs sont des entiers
eLigne = oXML>>parseError>>line()
ePositionLigne = oXML>>parseError>>linepos()
ePosAbs = oXML>>parseError>>filepos()

A+

--
Romain PETIT
http://cerbermail.com/?O16kfXOFcq
(cliquez sur le lien ci-dessus pour me contacter en privé)
Avatar
Georges Peyre
Merci infiniment Romain : c'est exactement ce qu'il me fallait pour
pouvoir déterminer la correction à apporter à mon application au lieu
de rejeter totalement le document XML.

Les problèmes étaient des petites erreurs que j'ai pu eradiquer par un
simple Remplace de façon à pouvoir traiter des XML d'un format pas
toujours correct.

Romain PETIT a écrit :
Tu devrais pourvoir récupérer la ligne, la position ainsi que la position
absolue dans le fichier avec :

eLigne, ePositionLigne, ePosAbs sont des entiers
eLigne = oXML>>parseError>>line()
ePositionLigne = oXML>>parseError>>linepos()
ePosAbs = oXML>>parseError>>filepos()



Tu es vraiment un champion !

Cordialement

--
Elle est pas belle la vie ?
Avatar
Romain PETIT
Georges Peyre a exprimé avec précision :

Tu es vraiment un champion !



Hé non malheureusement, je ne suis plus Lyonnais mais Villeurbannais
:-)

--
Romain PETIT
http://cerbermail.com/?O16kfXOFcq
(cliquez sur le lien ci-dessus pour me contacter en privé)
Avatar
Georges Peyre
Romain PETIT avait écrit le 16/05/2005 :
Hé non malheureusement, je ne suis plus Lyonnais mais Villeurbannais :-)



Oui mais maintenant tu as grandi ( ASVEL ) :D

--
Elle est pas belle la vie ?