Bonjour à mes collègues développeurs ![:ccool:](https://www.developpez.net/forums/images/smilies/ccool.gif)
Je dois générer un XML à l'aide de Java. Pas de problème jusque là, j'ai utilisé pour cela JDOM.
Le problème est que je dispose d'un HashMap contenant des clés et des valeurs associées qui me permet de remplir les valeurs des balises dans mon XML.
Exemple
<NumericField id="107">200,00</NumericField>
J'ai obtenu la valeur 200 en allant chercher la valeur de mon HashMap correspondant à une clé
Constat : il n'existe aucun lien entre l'ID de la balise et la clé de mon HashMap. Pour faire le lien, j'utilise plusieurs documentations et j'arrive à en déduire la clé qui correspond.
Solution temporaire : Pour chaque balise, je me réfère à la documentation pour trouver quelle clé correspond à son ID et je vais chercher sa valeur. Autant dire que le code est trés lourd
1 2 3 4 5 6
| Element numericField103 = new Element("NumericField");
if (monHashMap.get("SECT54") != null) {
numericField103.setAttribute("id", "103");
numericField103.setText(monHashMap.get("SECT54"));
formData.addContent(numericField103);
} |
Ce code est répété autant de fois qu'il y a de balises. C'est lourd avec beaucoup de chances de se tromper dans les IDs et clés en copiant/collant.
Solution recherchée : A la manière de l'API payante aspose, j'aimerai créer à la main un template du XML et le faire passer dans une moulinette qui va le remplir grâce à mon HashMap.
<NumericField id="103">{SECT54}</NumericField>
Lors du passage dans la moulinette, la valeur {SECT54} est remplacé par la valeur correspondante de la clé du HashMap "SECT54".
J'espère avoir été assez clair, n'hésitez pas à me demander des précisions si besoin.
Je ne demande pas une solution compléte, je veux surtout obtenir des pistes pour réaliser une telle manipulation car j'ai du mal à trouver les mots-clés adaptés pour une recherche Google.
Je reste également ouvert à d'autres propositions de solutions, car celle que j'ai mis en place ne me convient pas.
Merci à vous et bonne soirée.
EDIT : en relisant mon post, je viens de me dire que je pouvais parser le fichier XML et détecter les balises spéciales, telles que {{ }}
Ca me semble acceptable comme solution, à moins qu'il n'existe une API qui permet de faire ce genre de choses encore plus rapidement.
Je pense partir la dessus demain.
Partager