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
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.
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>
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 :
Donc la j'ai un petit problème pour afficher les données ...
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>
Ce que je voudrais réussir à faire c'est avoir un XML ressemblant à ceci :
Mais je ne sais pas si ceci est faisable
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>
Voici mon code Java actuel
D'avance merci à tous
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);
Partager