08-03-2010 09:37 AM
08-04-2010 06:00 AM
08-05-2010 08:53 AM
package job;
import java.io.File;
import java.util.Iterator;
import java.util.List;
import java.util.StringTokenizer;
import org.jdom.Attribute;
import org.jdom.Element;
import org.jdom.input.SAXBuilder;
public class LectureACP {
static String chemin;
public static void lireXML(String fichier){
//On crée une instance de SAXBuilder
SAXBuilder sxb = new SAXBuilder();
org.jdom.Document document = null;
try
{
//On crée un nouveau document JDOM avec en argument le fichier XML
document = sxb.build(new File(fichier));
}
catch(Exception e){
System.out.println(e.getMessage());
}
Element racine;
racine = document.getRootElement();
chemin = "";
List listeRepertoire = racine.getChildren();
Iterator ite = listeRepertoire.iterator();
Element ele;
while(ite.hasNext())
{
ele = (Element)ite.next();
if(ele.getName().equals("folder")){
List listeSousRepertoire = ele.getChildren();
traiterFolder(listeSousRepertoire);
}
}
}
public static void traiterFolder(List liste){
Iterator ite = liste.iterator();
Element ele;
while(ite.hasNext())
{
ele = (Element)ite.next();
if(ele.getName().equals("associations")){
Element contains = (Element)ele.getChildren().get(0);
List listeElements = contains.getChildren();
Iterator ite2 = listeElements.iterator();
Element ele2;
while(ite2.hasNext()){
ele2 = (Element)ite2.next();
if(ele2.getName().equals("folder")){
Attribute nom = (Attribute)ele2.getAttributes().get(0);
String value = nom.getValue().substring(3);
chemin += "\\" + value;
List listeSousRepertoire = ele2.getChildren();
File fb = new File("Export" + chemin);
fb.mkdir();
traiterFolder(listeSousRepertoire);
chemin = chemin.substring(0,chemin.length()-value.length()-1);
}
if(ele2.getName().equals("content")){
Attribute nom = (Attribute)ele2.getAttributes().get(0);
String nomFichier = nom.getValue().substring(3);
System.out.println(nomFichier);
List listeProprietes = ele2.getChildren();
Iterator ite3 = listeProprietes.iterator();
Element ele3;
while(ite3.hasNext()){
ele3 = (Element)ite3.next();
if(ele3.getName().equals("properties")){
List listeProprietes2 = ele3.getChildren();
Iterator ite4 = listeProprietes2.iterator();
Element ele4;
while(ite4.hasNext()){
ele4 = (Element)ite4.next();
if(ele4.getName().equals("content")){
StringTokenizer token = new StringTokenizer(ele4.getValue(), "|");
String cheminContent = "Fichiers ACP\\" + token.nextToken().substring(11).replace("/", "\\");
File fichierContent = new File(cheminContent);
File cheminDestination = new File("Export" + chemin + "\\" + nomFichier);
copier(fichierContent, cheminDestination);
}
}
}
}
}
}
}
}
}
public static void main(String[] args) throws Exception {
lireXML("Fichiers ACP\\FDC2.xml");
}
public static boolean copier( File source, File destination ){ //Methode permettant la copie d'un fichier
boolean resultat = false;
// Declaration des flux
java.io.FileInputStream sourceFile=null;
java.io.FileOutputStream destinationFile=null;
try {
// Création du fichier :
destination.createNewFile();
// Ouverture des flux
sourceFile = new java.io.FileInputStream(source);
destinationFile = new java.io.FileOutputStream(destination);
// Lecture par segment de 0.5Mo
byte buffer[]=new byte[512*1024];
int nbLecture;
while( (nbLecture = sourceFile.read(buffer)) != -1 ) {
destinationFile.write(buffer, 0, nbLecture);
}
// Copie réussie
resultat = true;
} catch( java.io.FileNotFoundException f ) {
} catch( java.io.IOException e ) {
} finally {
// Quoi qu'il arrive, on ferme les flux
try {
sourceFile.close();
} catch(Exception e) { }
try {
destinationFile.close();
} catch(Exception e) { }
}
return( resultat );
}
}
09-01-2010 04:21 AM
09-02-2010 08:18 AM
Tags
Find what you came for
We want to make your experience in Hyland Connect as valuable as possible, so we put together some helpful links.