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 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152
|
package com.shs.xml;
import java.io.IOException;
import java.io.StringReader;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.List;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.soap.SOAPException;
import org.apache.commons.beanutils.ConvertUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
public class ServiceBPHcreateXML {
protected static Log log = LogFactory.getLog(ServiceBPHcreateXML.class);
public static Document createXML(String chaine) throws IOException, SAXException, ParserConfigurationException{
DocumentBuilder parser = DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document document = parser.parse(new InputSource(new StringReader(chaine)));
return document;
}
@SuppressWarnings({ "null", "unchecked" })
public static List xmlToBean(Document document) throws ParseException{
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
List<Element> elements = null;
List<Composant> composants = null;
List<Renseignement> renseignements = null;
// Document document = null;
// try {
// document = XMLUtils.parse(ParameterUtils.getInstance().getGenerationCompteRendu() + "Test" + ".xml", true, new XMLErrorHandler());
// } catch (UtilException e) {
// e.printStackTrace();
// }
// récupération des Elements messages contenus dans le fichier XML :
NodeList listMessages = document.getElementsByTagName("message");
for (int i = 0; i < listMessages.getLength(); i++) {
// Pour chaque message, on récupère ses fils et on les traite :
NodeList listElements = listMessages.item(i).getChildNodes();
for (int ii = 0; ii < listElements.getLength(); ii++) {
if (listElements.item(ii).hasAttributes() || listElements.item(ii).hasChildNodes()) {
NodeList ordonnanceChilds = listElements.item(ii).getChildNodes();
for (int iii = 0; iii < ordonnanceChilds.getLength(); iii++) {
if (ordonnanceChilds.item(iii).getNodeName().equalsIgnoreCase("elements")) {
// Récupération des données elements
NodeList elementsChilds = ordonnanceChilds.item(iii).getChildNodes();
String id=null, statut=null, dateDebut=null, dateFin=null;
for (int iv = 0; iv < elementsChilds.getLength(); iv++) {
if (elementsChilds.item(iv).hasAttributes()) {
if (elementsChilds.item(iv).getLocalName().equalsIgnoreCase("id")) {
id = XMLUtils.getTextInNode(elementsChilds.item(iv));
} else if (elementsChilds.item(iv).getLocalName().equalsIgnoreCase("statut")) {
statut = XMLUtils.getTextInNode(elementsChilds.item(iv));
} else if (elementsChilds.item(iv).getLocalName().equalsIgnoreCase("dateDebut")) {
dateDebut = XMLUtils.getTextInNode(elementsChilds.item(iv));
} else if (elementsChilds.item(iv).getLocalName().equalsIgnoreCase("dateFin")) {
dateFin = XMLUtils.getTextInNode(elementsChilds.item(iv));
}
Element element = new Element();
element.setId(id);
element.setStatut(statut);
element.setDateDebut(sdf.parse(dateDebut));
element.setDateFin(sdf.parse(dateFin));
elements.add(element);
}
}
}else if (ordonnanceChilds.item(iii).getNodeName().equalsIgnoreCase("composants")) {
// Récupération des données composants
NodeList composantsChilds = ordonnanceChilds.item(iii).getChildNodes();
String id=null, type=null, code=null;
for (int iv = 0; iv < composantsChilds.getLength(); iv++) {
if (composantsChilds.item(iv).hasAttributes()) {
if (composantsChilds.item(iv).getLocalName().equalsIgnoreCase("id")) {
id = XMLUtils.getTextInNode(composantsChilds.item(iv));
} else if (composantsChilds.item(iv).getLocalName().equalsIgnoreCase("type")) {
type = XMLUtils.getTextInNode(composantsChilds.item(iv));
} else if (composantsChilds.item(iv).getLocalName().equalsIgnoreCase("code")) {
code = XMLUtils.getTextInNode(composantsChilds.item(iv));
}
Composant composant = new Composant();
composant.setId(id);
composant.setType(type);
composant.setCode(code);
composants.add(composant);
}
}
} else if (ordonnanceChilds.item(iii).getNodeName().equalsIgnoreCase("renseignements")) {
// Récupération des données renseignements
NodeList renseignementsChilds = ordonnanceChilds.item(iii).getChildNodes();
String code=null, valeur=null;
for (int iv = 0; iv < renseignementsChilds.getLength(); iv++) {
if (renseignementsChilds.item(iv).hasAttributes()) {
if (renseignementsChilds.item(iv).getLocalName().equalsIgnoreCase("code")) {
code = XMLUtils.getTextInNode(renseignementsChilds.item(iv));
} else if (renseignementsChilds.item(iv).getLocalName().equalsIgnoreCase("valeur")) {
valeur = XMLUtils.getTextInNode(renseignementsChilds.item(iv));
}
Renseignement renseignement = new Renseignement();
renseignement.setCode(code);
renseignement.setValeur(valeur);
renseignements.add(renseignement);
}
}
}
}
}
}
}
List<Object> object = null;
object.add(elements);
object.add(composants);
object.add(renseignements);
return object;
}
} |
Partager