1 pièce(s) jointe(s)
Construction d'un document à partir d'une chaîne de caractères
Bonjour,
je teste actuellement un script qui transforme des données récupérées en JSON vers du XML (ça, ça marche).
Voici le XML tel que je le récupère :
Pièce jointe 219965
J'ai donc réalisé le bout de code suivant pour essayer de retourner le statut d'un moniteur en fonction du nom passé en paramètre :
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 43 44 45
|
// Permet de transformer le JSON en XML
public String getMonitorStatus(String s) {
String sStatus = "";
JSONObject json = new JSONObject(getJSONFromDatametrie());
org.jdom2.Document document;
Element racine;
// Conversion en XML
try {
String sXml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + XML.toString(json);
//DEBUG
System.out.println(sXml);
// création d'un saxbuilder pour parcourir le xml
SAXBuilder sxb = new SAXBuilder();
//InputStream stream = new ByteArrayInputStream(sXml.getBytes("UTF-8"));
document = sxb.build(new StringReader(sXml));
// on se place à la balise racine
racine = document.getRootElement();
// création d'une liste puis d'un objet pour chaque item de type response qu'on retrouve
List listReponse = racine.getChildren("response");
System.out.println("Taille de la liste response : " + listReponse.size());
Iterator i = listReponse.iterator();
while (i.hasNext()) {
Element courant = (Element)i.next();
System.out.println("Element courant : " + courant.getChild("MONITOR_ID").getText());
if (getMonitorName(Integer.parseInt(courant.getChild("MONITOR_ID").getText())) == s)
sStatus = courant.getChild("ALARM_TYPE").getText();
}
}
catch (JSONException e) {
e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}
catch (JDOMException e) {
e.printStackTrace();
}
catch (Exception e) {
e.printStackTrace();
}
return sStatus;
} |
Or, mon problème est qu'après debug je vois que le nombre d'éléments retournés par la méthode listReponse.size() est égal à 0 (il n'y a donc pas d'éléments retournés pour l'élement enfant réponse alors qu'il y en a plein dans mon XML) :(
Y a t'il quelque chose que je fais mal ? Je débute en Java, je précise :)
Merci à vous !