Aller au contenu

Nirvana

Utilisateur
  • Compteur de contenus

    8 971
  • Inscription

  • Dernière visite

Tout ce qui a été posté par Nirvana

  1. Je n'ai pas compris le sens de cette phrase
  2. +1. J'ai même été invité à la manifestation pro-mariage gay du 27 janvier. Heu, comment dire...
  3. http://www.zdnet.fr/actualites/le-showrooming-nouvelle-arme-d-amazon-39785123.htm
  4. Nickel. Merci beaucoup !
  5. Merci. Donc, à la place de catch (Exception e) { System.out.println("Erreur " + e.getMessage()); je mets tout bêtement catch (Exception e) { System.err.println("Erreur " + e.getMessage()); ? Edit : en tout cas ça compile.
  6. Bon, j'ai réussi la première étape, qui consiste à prendre un fichier texte en entrée et à cracher du XML en sortie, seulement le résultat s'affiche dans la console. Comme l'énoncé est ambigü, je me demande s'il ne faut pas aussi écrire la sortie dans un fichier XML. Evidemment, on n'a pas vu comment manipuler des fichiers à part dans des bouts de code donnés tels quels par les profs, donc je ne sais pas s'il y a une méthode (dans tous les sens du terme) simple pour faire ça. Donc voilà mon code (à 90% déjà fourni par le prof) et désolé pour tous les commentaires : package fr.crim.a2012.tt2xml0; import java.io.BufferedReader; import java.io.FileInputStream; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.Writer; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.transform.OutputKeys; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import org.w3c.dom.DOMImplementation; import org.w3c.dom.Document; import org.w3c.dom.DocumentType; import org.w3c.dom.Element; public class TT2XML0 { /* * Méthode de service - Ici, méthode de classe - Ecrit le texte de sortie */ public static void sortir(Document doc, Writer out) throws Exception { /* * Acts as a holder for a transformation Source tree in the form of a * Document Object Model (DOM) tree. */ DOMSource src = new DOMSource(doc); /* * Acts as an holder for a transformation result, which may be XML, * plain Text, HTML, or some other form of markup. */ StreamResult res = new StreamResult(out); /* * An instance of this abstract class can transform a source tree into a * result tree. */ Transformer trans = TransformerFactory.newInstance().newTransformer(); trans.setOutputProperty( OutputKeys.DOCTYPE_SYSTEM, "http://pagesperso-systeme.lip6.fr/Jean-Francois.Perrot/inalco/XML/IM12/Projet/tags.dtd"); // Transforme la source XML en objet Result trans.transform(src, res); } /* * Méthode principale (méthode de classe) Crée un objet Document à partir * d'un fichier lu en entrée */ public static Document lireText(BufferedReader entree) throws Exception { // DocumentBuilder est un parseur permettant l'analyse d'un fichier XML DocumentBuilder parseur = DocumentBuilderFactory.newInstance() .newDocumentBuilder(); DOMImplementation domi = parseur.getDOMImplementation(); // DTD DocumentType dtd = domi .createDocumentType( "liste", null, "http://pagesperso-systeme.lip6.fr/Jean-Francois.Perrot/inalco/XML/IM12/Projet/tags.dtd"); // L'interface Document représente un document XML entier Document listeTokens = domi.createDocument("http://crim.fr/ns/graph", "tags", dtd); // L'interface Element représente un élément dans un document XML Element liste = listeTokens.getDocumentElement(); String ligne = entree.readLine(); do { // Pour chaque ligne du fichier d'entrée // Capture des tokens dans un tableau de chaînes String[] tab = ligne.split("[ \t]+"); String mot = tab[0]; // Mot String etiquette = tab[1].trim(); // Etiquette morphosyntaxique String lemme = tab[2].trim(); // Lemme // Crée un élément XML de type "token" Element el = listeTokens.createElement("token"); // Ajoute l'élément "token" après la racine de l'arbre XML liste.appendChild(el); // Ajoute les trois attributs à l'élément "token" créé et ajouté el.setAttribute("mot", mot); el.setAttribute("etiquette", etiquette); el.setAttribute("lemme", lemme); // Passe à la ligne suivante ligne = entree.readLine(); } while (ligne != null); return listeTokens; // Retourne l'arbre XML créé } // ------------------------------------------------------------------------ public static void main(String[] args) { // Message d'erreur si trop ou pas assez d'arguments if (args.length != 1) { System.out.println("Il me faut un nom de fichier !"); } else { try { // Exécution du programme // Lecture du fichier passé en argument BufferedReader entree = new BufferedReader( new InputStreamReader(new FileInputStream(args[0]), "ISO-8859-1")); // Création du fichier XML de sortie Document doc = lireText(entree); // OutputStreamWriter = Encodage des caractères de sortie Writer sortie = new OutputStreamWriter(System.out, "UTF-8"); // Ecriture du flux de sortie sortir(doc, sortie); } catch (Exception e) { System.out.println("Erreur " + e.getMessage()); } } } } Voilà le texte en entrée (format .txt, iso 8859-1) : http://pastebin.com/Uyp8rUSL ou en lien direct Et la sortie que j'ai en console : http://pastebin.com/wSFGUbKJ A la rigueur, je pourrais rediriger le flux de sortie en Bash sans problème, mais j'imagine que c'est "mieux" de le faire directement en Java...
  7. Cette blague pas drôle ne méritait pas une réponse si élaborée.
  8. Me revoilà à devoir faire un nouveau projet (Java + XML) pour dans 5 jours. Je vous demanderai éventuellement de l'aide si je bloque : http://pagesperso-systeme.lip6.fr/Jean-Francois.Perrot/inalco/XML/IM12/Projet/ProjetXML12.html
  9. http://www.youtube.com/watch?v=GrsJDy8VjZk http://www.youtube.com/watch?v=O-Ho1JRhaFs
  10. Nirvana

    Jeux vidéo

    Cette chronique de méga-geek... http://www.youtube.com/watch?v=mvZ-O4DIoSk
  11. Nirvana

    Labéral Débutant

    Bon, allez, adrct c'est un troll de Lucilio ? Ou Chitah, peut-être ?
  12. Pour avoir utilisé temporairement OKCupid, j'ai toujours trouvé leur site rapide et performant, mais je ne sais pas si leur choix de langages en est la cause
  13. J'en ai entendu parler dans un roman d'Amélie Nothomb.
  14. Nirvana

    James M. Buchanan

    93 ans, il aura bien vécu.
  15. Le gérant de la chaîne Youtube de FPS Russia vient d'être retrouvé mort par balle http://www.tubefilter.com/2013/01/08/fps-russia-keith-ratliff-murder/
  16. J'ai pas compris.
  17. Non, on apprend des trucs sympa pour sa culture perso (c'est vraiment le seul intérêt) mais quand on doit se taper trois ans de Licence juste pour avoir le droit de faire enfin un truc intéressant en Master, on a l'impression de perdre son temps grave.Si je pouvais remonter le temps, j'aurais sûrement tenté une école d'ingénieur après le bac.
  18. Ah, on a eu la même (mauvaise) idée.
  19. Je suis en train d'avoir mon bac + 5 en traitement automatique des langues à l'université, à Paris. J'ai donc voté bac + 3/4 et 'autre'.
  20. En cas de référendum, tu voterais non ou tu t'abstiendrais ?
  21. Chavez est mort il y a un an et on ne le savait même pas ? Sont forts ces vénézuéliens.
  22. J'ai tenu une heure devant The Raid: Redemption et c'est déjà trop. C'est l'un des pires films d'action que j'ai jamais vu. Je ne comprends pas qu'il ait un tel score sur Rottentomatoes.
  23. Je me suis pas penché sur la question, mais je me demande si on ne peut pas même le faire en une ligne de Bash.
×
×
  • Créer...