[Digester] - Parser un XML bizarre
Bonjour,
J'utilise Digester sur des fichiers XML classiques par contre, je bute sur un et je voulais juste avoir votre avis sur la faisabilité du mapping dont voici l'exemple ci-dessous.
Merci à vous.
Cordialement,
Ulrich.
L'exemple :
L'idée est que à chaque fois que je rencontre la pattern "pages-jurisdictions/page" je crée une liste pour ranger mes "control".
Mais en fait, j'ai besoin de créer deux liste pour le même pattern (une pour "control" et une pour "jurisdiction") Mais est-ce possible ?
----- Le fichier à mapper -------
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
<?xml version="1.0" encoding="UTF-8"?>
<pages-jurisdictions>
<page name="PAGE_CHECK_HABILITATION">
<jurisdiction name="READ"/>
<jurisdiction name="WRITE"/>
</page>
<page name="PAGE_JURISDICTION_02">
<jurisdiction name="ACCESS_JURISDICTION_02"/>
<control name="CONTROL_01" style="INACTIF">
<jurisdiction name="ACCESS_CONTROL_01"/>
</control>
</page>
<page name="PAGE_JURISDICTION_03">
<control name="CONTROL_02" style="INACTIF">
<jurisdiction name="ACCESS_CONTROL_02"/>
</control>
</page>
</pages-jurisdictions> |
----- Mon mapping -------
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
|
// create the digester
Digester digester = new Digester();
// create the pages bean
digester.addObjectCreate("pages-jurisdictions", PagesJurisdictionsBean.class);
// **** party ************************************************************************************
// create the page bean list
digester.addObjectCreate("pages-jurisdictions", ArrayList.class);
// create the page bean
digester.addObjectCreate("pages-jurisdictions/page", PageBean.class);
// set the property of page bean
digester.addSetProperties("pages-jurisdictions/page");
// add the page bean in page bean list
digester.addSetNext("pages-jurisdictions/page", "add");
// add the page bean list
digester.addSetNext("pages-jurisdictions", "setPages");
// **** party ************************************************************************************
// create the control bean list
digester.addObjectCreate("pages-jurisdictions/page", ArrayList.class);
// create the control bean
digester.addObjectCreate("pages-jurisdictions/page/control", PageControlBean.class);
// set the property of control bean
digester.addSetProperties("pages-jurisdictions/page/control");
// add the control bean in control bean list
digester.addSetNext("pages-jurisdictions/page/control", "add");
// add the control bean list
digester.addSetNext("pages-jurisdictions/page", "setControls");
// **** party ************************************************************************************
// create the jurisdiction bean list
digester.addObjectCreate("pages-jurisdictions/page/control", ArrayList.class);
// create the jurisdiction bean
digester.addObjectCreate("pages-jurisdictions/page/control/jurisdiction", PageJurisdictionBean.class);
// set the property of jurisdiction bean
digester.addSetProperties("pages-jurisdictions/page/control/jurisdiction");
// add the jurisdiction bean in jurisdiction bean list
digester.addSetNext("pages-jurisdictions/page/control/jurisdiction", "add");
// add the jurisdiction bean list
digester.addSetNext("pages-jurisdictions/page/control", "setJurisdictions"); |