Bonjour,
Je cherche a extraire les données entre balises du fichier texte suivant :
Étant donné que l ' entête provient d ' un message soap , je ne peux pas utiliser jdom car le format xml du fichier est non reconnu...
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 POST /receiver HTTP/1.1\r\n User-Agent: PhoneTag\r\n Host: https://api.example.com/collect_transcriptions\r\n Accept: */*\r\n Content-Length: 1207\r\n number given here as example Content-Type: application/xml\r\n <?xml version = "1.0" encoding = "ISO-8859-1"?> <treatment_results> <sp_api_name>PhoneTag</sp_api_name> <account_did>9384602893</account_did> <service_type>s2t</service_type> <request_ref> <reference_id>4b1e6c33bb0022761c0a4af0</reference_id> <context_return_data>local context data;1243;e6c34bb0</context_return_data> </request_ref>b <receipt> <receipt_date_time>2011-04-15T13:12:51.23Z</receipt_date_time> </receipt> <result> <treatment_end_date_time>2011-04-15T13:13:06.12Z</treatment_end_date_time> <treatment_result>transcribed</treatment_result> <treatment_confidence_rate>0954</treatment_confidence_rate> </result> <treated_data> <media_content_type>text/plain</media_content_type> <media_content_parameters>charset=gsm-03.38-7</media_content_parameters> <media_file_data>Bonjour tout le monde mon nom est Jean et je suis né jour a midi.</media_file_data> </treated_data> <source_descriptors> <presumed_language>fr_FR</presumed_language> </source_descriptors> </treatment_results>
Je dois donc faire ceci a la main , et j ' ai pensé utiliser la classe StringTokenizer , mais j ' ai un peu de mal a l ' utiliser pour récupérer les chaines entre les balises xml.
Mon code est le suivant:
Merci de votre aide
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 StringTokenizer st = new StringTokenizer(chaine,"");// chaine contient mon fichier System.out.println("tokens count: " + st.countTokens()); while (st.hasMoreElements()) { String token = st.nextElement().toString(); //System.out.println("token = " + token); String chaine=token.substring(token.indexOf("<sp_api_name>"),token.indexOf("</sp_api_name>")); System.out.println(chaine); // ceci fonctionne partiellement car j 'ai toujours la balise ouvrante. }
Partager