Bonjour à tous,

Voilà j'ai un petit problème dans la structure d'un fichier XML.

Donc j'ai du code Java qui exécute une procédure stockée (avec 2 curseurs, le premier curseur renvoie les données : nom, prénom, adresse, ... du client et le deuxième curseur renvoie les différents indices d'affectation du client exemple : 2202, 2316, 2422).

Cela génére un fichier XML mis en page par du XSL.

Voici ce que me donne mon fichier XML

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<ROWSET>
   <ROW num="1">
      <Id>635</Id>
      <CONT_PRENOM>ROBERT</CONT_PRENOM>
      <CONT_NOM>ANTOINE</CONT_NOM>
      <NUM_CLIENT>1007874</NUM_CLIENT>
      <COAD_ADRESSE_DIRECTE>O</COAD_ADRESSE_DIRECTE>
      <CONT_CLIENT>C</CONT_CLIENT>
      <TCON_CODE>100 - PARTICULIERS</TCON_CODE>
      <Adresse>AVENUE REINE ASTRID, 24 </Adresse>
      <Localité>4831 BILSTAIN</Localité>
   </ROW>
</ROWSET>
<INDICE>
   <ROW num="1">
      <Id_Ind>635</Id_Ind>
      <TIND_CODE>2201</TIND_CODE>
   </ROW>
   <ROW num="2">
      <Id_Ind>635</Id_Ind>
      <TIND_CODE>2102</TIND_CODE>
   </ROW>
</INDICE>
Donc j'ai la balise ROWSET avec le retour du premier Curseur et j'ai la balise INDICE avec le retour du deuxième Curseur.
Dans le cas ci-dessus j'effectue une recherche sur un N° client bien précis, maintenant si j'effectue une recherche sur des noms, j'obtiens les résultats suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
43
44
45
46
47
48
<ROWSET>
   <ROW num="1">
      <Id>80199</Id>
      <CONT_NOM>AMORG</CONT_NOM>
      <NUM_CLIENT>5492974</NUM_CLIENT>
      <COAD_ADRESSE_DIRECTE>O</COAD_ADRESSE_DIRECTE>
      <CONT_CLIENT>C</CONT_CLIENT>
      <TCON_CODE>304 - PROFESSIONS LIBERALES</TCON_CODE>
      <Adresse>AVENUE MOLIERE, 489 B1</Adresse>
      <Localité>1050 BRUXELLES</Localité>
   </ROW>
   <ROW num="2">
      <Id>92746</Id>
      <CONT_PRENOM>LISE</CONT_PRENOM>
      <CONT_NOM>AMORISON</CONT_NOM>
      <NUM_CLIENT>4590949</NUM_CLIENT>
      <COAD_ADRESSE_DIRECTE>O</COAD_ADRESSE_DIRECTE>
      <CONT_CLIENT>C</CONT_CLIENT>
      <TCON_CODE>304 - PROFESSIONS LIBERALES</TCON_CODE>
      <Adresse>RUE DE CONDE, 60 </Adresse>
      <Localité>7971 BASECLES</Localité>
   </ROW>
   <ROW num="3">
      <Id>27870</Id>
      <CONT_PRENOM>EMILIO</CONT_PRENOM>
      <CONT_NOM>AMORMINO</CONT_NOM>
      <NUM_CLIENT>3358794</NUM_CLIENT>
      <COAD_ADRESSE_DIRECTE>O</COAD_ADRESSE_DIRECTE>
      <CONT_CLIENT>C</CONT_CLIENT>
      <TCON_CODE>100 - PARTICULIERS</TCON_CODE>
      <Adresse>RUE DE L ETAT, 19 </Adresse>
      <Localité>4682 HOUTAIN-SAINT-SIMEON</Localité>
   </ROW>
</ROWSET>
<INDICE>
   <ROW num="1">
      <Id_Ind>92746</Id_Ind>
      <TIND_CODE>2621</TIND_CODE>
   </ROW>
   <ROW num="2">
      <Id_Ind>85096</Id_Ind>
      <TIND_CODE>2324</TIND_CODE>
   </ROW>
   <ROW num="3">
      <Id_Ind>126478</Id_Ind>
      <TIND_CODE>2608</TIND_CODE>
   </ROW>
</INDICE>
Donc la j'ai un petit problème pour afficher les données ...

Ce que je voudrais réussir à faire c'est avoir un XML ressemblant à ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<ROWSET>
   <ROW num="1">
      <Id>635</Id>
      <CONT_PRENOM>ROBERT</CONT_PRENOM>
      <CONT_NOM>ANTOINE</CONT_NOM>
      <NUM_CLIENT>1007874</NUM_CLIENT>
      <COAD_ADRESSE_DIRECTE>O</COAD_ADRESSE_DIRECTE>
      <CONT_CLIENT>C</CONT_CLIENT>
      <TCON_CODE>100 - PARTICULIERS</TCON_CODE>
      <Adresse>AVENUE REINE ASTRID, 24 </Adresse>
      <Localité>4831 BILSTAIN</Localité>
         <INDICE>
            <TIND_CODE>2201</TIND_CODE>
            <TIND_CODE>2102</TIND_CODE>
         </INDICE>
</ROWSET>
Mais je ne sais pas si ceci est faisable

Voici mon code Java actuel

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
OracleXMLQuery qry = new OracleXMLQuery(conn,(OracleResultSet)cstmt.getObject (1));   // create a OracleXMLQuery instance
OracleXMLQuery qry2 = new OracleXMLQuery(conn,(OracleResultSet)cstmt.getObject (2));   // create a OracleXMLQuery instance
 
qry.keepObjectOpen(true);
qry2.keepObjectOpen(true); // Don't lose state after the first fetch
 
//Get the XML string
String xmlString = qry.getXMLString();
String xmlString2 = qry2.getXMLString();
 
//System.out.println(xmlString);
//System.out.println(xmlString2);
 
int pos2 = xmlString.indexOf("<ROWSET>");
int pos3 = xmlString.indexOf("</ROWSET>");
int pos4 = xmlString2.indexOf("<ROWSET>");
int pos5 = xmlString2.indexOf("</ROWSET>");
 
if (pos2>0 & pos3>0)
{
//Si au moins un résultat pour le lien 1 à plusieurs, il va entre les tags <ADD>
	xmlString = xmlString + "<INDICE>" + xmlString2.substring(pos4+8,pos5) + "</INDICE>";
}
 
System.out.println(xmlString);
D'avance merci à tous