|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre à l'essai
![]() Inscription : août 2006 Messages : 40 ![]() |
Bonjour à tous,
Voilà plusieurs semaines que je suis bloquée sur un problème : je cherche à analyser un fichier XML par un programme ABAP, en utilisant un XSLT de transformation. Je lis le fichier XML et le stocke dans une variable STRING. J'ai définit une table interne pour accueillir les données contenues dans le fichier XML. J'ai défini un XSLT de transformation. J'utilise l'instruction CALL TRANSFORMATION ... J'ai trouvé divers exemples, mais aucun de fonctionne pour ma structure de fichier. Est-ce que quelqu'un peut m'aider ? Merci d'avance. |
|
|
00
|
|
|
#2 | ||||||
|
Membre à l'essai
![]() Inscription : août 2006 Messages : 40 ![]() |
Pour être plus claire, voici les différents bouts de code que j'utilise.
Le fichier source XML que je veux analyser : Code :
Code :
Code :
Merci d'avance pour vos suggestions. |
||||||
|
|
00
|
|
|
#3 |
|
Membre expérimenté
![]() ![]() ![]() SAP for Banking Inscription : juin 2002 Messages : 539 ![]() |
Bonsoir,
Je n'ai pas eu le temps de verifier le code, je regarderai demain, mais y'a-t-il des donnees dans gt_result ? Ludo
__________________
TRY. N/A CATCH cx_root. |
|
|
00
|
|
|
#4 |
|
Membre à l'essai
![]() Inscription : août 2006 Messages : 40 ![]() |
Bonjour,
Il n'y a que ce que j'y ai chargé : GT_RESULT-NAME contient Envelope GT_RESULT-VALUE contient {A:1} |
|
|
00
|
|
|
#5 | ||||
|
Membre expérimenté
![]() ![]() ![]() SAP for Banking Inscription : juin 2002 Messages : 539 ![]() |
Bonjour,
J'ai essayé ce morceau de code mais j'imagine que tu n'as pas fait un simple copié-collé : il ne compile pas. J'ai donc fait quelques modifications (v. ci-dessous), échangé l'appel au DATASET par un appel d'API (parceque je ne ne peux pas importer le fichier XML sur le serveur). Mais j'ai un xslt kernel error : hélas. En outre, je ne vois pas trop pourquoi tu utilises deux tables ?!? Code :
Code :
Par contre, j'aimerais avoir un feedback sur ces modifs avant de poursuivre et/ou un code compilable. Amicalement, Ludo
__________________
TRY. N/A CATCH cx_root. |
||||
|
|
00
|
|
|
#6 | ||||
|
Membre à l'essai
![]() Inscription : août 2006 Messages : 40 ![]() |
Bonjour Ludovic,
Mon code n'était effectivement pas un copier/coller et je ne l'avais pas fait fonctionner tel que, désolée Depuis mon dernier post, j'ai fait quelques modifications pour essayer de m'en sortir ... le résultat n'est pas mieux, mais je te donne les dernières sources. Merci pour ta réponse en tous cas, ça m'encourage de savoir que quelqu'un est là Nouveau XSLT : Code :
(J'ai mis en rouge les lignes qui manquaient pour que ça compile le coup d'avant) Code :
|
||||
|
|
00
|
|
|
#7 | ||
|
Membre expérimenté
![]() ![]() ![]() SAP for Banking Inscription : juin 2002 Messages : 539 ![]() |
Bonjour,
En modifiant legerement la grammaire, j'obtient ceci : Code :
Ludo
__________________
TRY. N/A CATCH cx_root. |
||
|
|
00
|
|
|
#8 | ||
|
Membre à l'essai
![]() Inscription : août 2006 Messages : 40 ![]() |
Bonjour Ludo,
Je viens de relancer en debug mon XSLT et j'obtiens ceci, moi : Code :
C'est ton résultat que je souhaiterai obtenir effectivement. Qu'as tu changé dans la grammaire ? Merci d'avance. Frooty. |
||
|
|
00
|
|
|
#9 |
|
Membre expérimenté
![]() ![]() ![]() SAP for Banking Inscription : juin 2002 Messages : 539 ![]() |
Oui, la difference est liee a ceci (c'est un peu prise de tete cette histoire
<xsl:apply-templates select="DeliveryInfo/item"/> As-tu verifie que p_xml contient bien l'ensemble du fichier xml ? Ludo
__________________
TRY. N/A CATCH cx_root. |
|
|
00
|
|
|
#10 |
|
Membre à l'essai
![]() Inscription : août 2006 Messages : 40 ![]() |
Je viens de contrôler : p_xml contient bien la totalité de mon fichier XML.
Je visualise la dernière balise </Envelope> à la fin de la variable. C'est grâve docteur ? |
|
|
00
|
|
|
#11 |
|
Membre expérimenté
![]() ![]() ![]() SAP for Banking Inscription : juin 2002 Messages : 539 ![]() |
Salut Frooty,
Désolé de ne pouvoir t'aider davantage. Hormis par l'utilisation de classe IXML (v. SAP Developer Network) , je ne vois pas de solution à l'heure actuelle. Bon courage, Ludo
__________________
TRY. N/A CATCH cx_root. |
|
|
00
|
|
|
#12 |
|
Membre à l'essai
![]() Inscription : août 2006 Messages : 40 ![]() |
Bonjour Ludo,
Je te remercie déjà pour les pistes que tu m'as données. Le SAP developper Network ne m'a pas apporté d'aide jusqu'à présent, mais je vais persévérer, je n'ai pas le choix, il me FAUT la solution. Je te tiens au courant. A + Frooty |
|
|
00
|
|
|
#13 | ||||
|
Membre à l'essai
![]() Inscription : août 2006 Messages : 40 ![]() |
J'ai trouvé !
Après avoir encore passé la journée sur le problème ... une connexion neurale a du s'établir et ça marche ! Je vous fais partager le résultat de mes efforts, si cela peut aider quelqu'un ... Le fichier XML de départ est toujours le même bien sur. Le fichier de grammaire XSLT a quelque peu changé : En fait, l'astuce se situe dans les lignes de type : Code :
<FILEP> <xsl:value-of select="Fileproceed"/> </FILEP>
Voici les dernières sources : Code :
Code :
Je suis soulagée d'avoir enfin trouver la solution à mon problème et j'espère que mes explications seront assez claires pour ceux qui voudront s'en inspirer. Bonne soirée à tous. Une Frooty toute heureuse !
|
||||
|
|
00
|
|
|
#14 |
|
Membre expérimenté
![]() ![]() ![]() SAP for Banking Inscription : juin 2002 Messages : 539 ![]() |
Genial !
A bientot. Ludo
__________________
TRY. N/A CATCH cx_root. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com