2009-11-19 9 views
2

Mon entreprise travaille sur un projet qui doit lire des fichiers XML dans SAP ABAP.Analyse XML dans SAP ABAP

  1. Lorsque le fichier XML ne contient aucune donnée pour un point particulier, il omet ces données.
  2. Certaines étiquettes sont à fermeture automatique. par exemple. < tag/>

Le développeur SAP indique que pour lire le document XML il a d'abord le document dans parse une structure XML ABAP. Ce processus échoue au point 2. Il doit alors créer un XSLT pour transformer ces données en une structure de données interne, et cela échoue sur le point 1, ce qui rend la tâche très difficile à réaliser dans ABAP. Est-ce vraiment le cas et n'y a-t-il aucun moyen de lire les champs spécifiques dont nous avons besoin?

+0

Le point 2 s'est avéré être du hareng rouge. Je ne suis toujours pas convaincu que le point 1 de la puce cause des erreurs. – Steven

Répondre

3

Le meilleur endroit pour commencer l'analyse XML dans ABAP est le SAP XML Library.

Il est sans doute une très mauvaise idée d'essayer et d'écrire votre propre algorithme d'analyse - laissez quelqu'un d'autre (SAP, dans ce cas) faire le travail difficile pour vous.

-1

Vous pouvez simplement lire le fichier (en utilisant un jeu de données ouvert), puis analyser le XML en utilisant des fonctions de chaîne comme find. C'est moche et pourrait être beaucoup de travail, mais vous pouvez certainement le faire.

+0

Non, juste non .. Il échouera, il faut beaucoup de temps pour construire un analyseur xml conforme, même SAP a des notes OSS pour leur analyseur. – tomdemuyt

0

Je vous suggère d'appliquer le XSLT en premier pour amener le contenu XML dans une forme que le processeur ABAP est capable de lire. Il y a aussi iXML (jetez un oeil aux exemples de programmes BCCIIXML *), mais il est plutôt lent et encombrant à utiliser ...

0

Il ya un tutoriel sur heidoc.net/joomla/development-main/menu-31/22-sap --xslt/15-sapxslt qui pourrait aider, aussi le SDN (SAP Developer's Net) a quelques articles dessus. J'ai trouvé quelques références à http://help.sap.com/abapdocu/en/ABENST_ABEXA.htm

Juste google il.

1

Dans le cas où quelqu'un lit ce blog et se demande: Vous pourriez être en mesure d'utiliser des contrôles avec l'instruction cond comme qui peut commencer comme:

tt:cond check="not-initial( 

ou

tt:cond using="exist(ref('$Styles'))" 

Je l'ai utilisé avec la transformation simple sur les feuilles EXCEL.