package org.medias.eccad.helpers; import java.io.InputStream; import java.io.StringReader; import java.util.Date; import java.util.Iterator; import java.util.Set; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.io.SAXReader; import org.xml.sax.EntityResolver; import org.xml.sax.InputSource; public class XmlHelper { public static String createNode(String tag, String valeur) { String noeud = new String(); if (valeur == null) return ""; valeur = valeur.trim(); if ( valeur.equals("") || valeur.equals("NULL") || valeur.equals("xx")) { return ""; } noeud = "<" + tag + ">" + valeur + "" + "\n"; return noeud; } public static String createNode(String tag, Date valeur) { if (valeur != null) { return createNode(tag, valeur.toString()); } return ""; } public static String createNode(String tag, int valeur) { return createNode(tag, Integer.toString(valeur)); } public static String createNode(String tag, long valeur) { return createNode(tag, Long.toString(valeur)); } public static String createNode(String tag, Long valeur) { if (valeur != null) { return createNode(tag, valeur.toString()); } return ""; } public static String objectToString(Object objet) { String retour = new String(); if (objet != null) retour = objet.toString(); return retour; } public static String listToString(String nom, Set liste) { String retour = new String(); if (liste.size()==0) return ""; retour += "<" + nom + ">\n"; for (Object object : liste) { retour += object.toString(); } retour += "\n"; return retour; } /** * fonction pour récupérer juste 1 élement... * @param nom * @param liste * @param index * @return */ public static String listToString(String nom, Set liste, int index) { String retour = new String(); if (liste.size()==0) return ""; Iterator ite = liste.iterator(); retour += ite.next().toString(); return retour; } public static Document getXMLtoDocument(InputStream is_xml, String identifiant) { // LoggerPerso.log(XmlHelper.class, LoggerPerso.WARN, "LECTURE XML"); Document dom = null; InputSource is = null; SAXReader reader = new SAXReader(); class NoDTDEntityResolver implements EntityResolver { public InputSource resolveEntity(String publicID, String systemID) { return new InputSource(new StringReader("")); } } try { is = new InputSource(is_xml); is.setEncoding("ISO-8859-1"); } catch (Exception e) { LoggerPerso.log(XmlHelper.class, LoggerPerso.WARN, "Erreur de lecture du xml", e); return null; } try { //Using factory get an instance of document builder reader.setEntityResolver(new NoDTDEntityResolver()); //parse using builder to get DOM representation of the XML file dom = reader.read(is); } catch(DocumentException etout) { LoggerPerso.log(XmlHelper.class, LoggerPerso.WARN, "Document Exception " + identifiant); LoggerPerso.log(XmlHelper.class, LoggerPerso.WARN, etout); //etout.printStackTrace(); return null; } return dom; } }