IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Entrée/Sortie Java Discussion :

Parcourir un fichier HTML


Sujet :

Entrée/Sortie Java

  1. #1
    Membre du Club
    Inscrit en
    Juin 2002
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 101
    Points : 42
    Points
    42
    Par défaut Parcourir un fichier HTML
    Bonjour, je voudrais extraire un tableau d'un fichier HTML pour le transformer en csv !

    Il me faut donc parcourir et detecter les balises <TABLE>. J'ai pas trop d'exsperience dans la manipulation de fichier XML.

    J'ai trouve les tutoriaux sur JAXP mais j'ai un peu de mal...


    Je voudrais dans un premier temps ouvrir un fichier HTML et recuperer des balises comme <TABLE>, <TR>, <TD>, etc

    Merci de me rensigner pour m'aider à commencer !

    Obelix

  2. #2
    Membre éprouvé
    Avatar de ozzmax
    Inscrit en
    Novembre 2005
    Messages
    977
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Novembre 2005
    Messages : 977
    Points : 959
    Points
    959
    Par défaut
    Salut, j'ai eu un projet semblable a faire...
    Il faut que tu parses ton fichier XML et lire les caractères 1 à 1 afin de comparer les strings entre elles pour trouver ce que tu recherches.

    dans le fond tu cherches les balises qui ouvre et compare ce que tu trouve à l'intérieur...
    c'est a dire lorsque tu as une balise qui ouvre : <...
    tu prends ce qu'il y a à l'intérieur jusqu'à ce que tu captes la balise de fin...
    str = "table"...balise de fin >
    et là tu tes codes tes instructions...tout en lisant jusqu'a ce que la balise..soit </table>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    if(strChar.compareTo("<")==0){
    							intChar = br.read();
    							chrChar = (char)intChar;
    							strChar =String.valueOf(chrChar);
    							skip++;
    							//si une balise qui ouvre
    							if((strChar.compareTo("/")!=0)&&(strBufferOpen.compareTo("")==0)){
    								strBufferOpen = "<"+strChar;
    								while(strChar.compareTo(">")!=0){
    									intChar = br.read();
    									chrChar = (char)intChar;
    									strChar =String.valueOf(chrChar);
    									strBufferOpen = strBufferOpen + strChar;
    									skip++;
    								}
    							}
    							//si c'est une balise qui ferme
    							else if(strChar.compareTo("/")==0){
    								strBufferClose = "</";
    								while(strChar.compareTo(">")!=0){
    									intChar = br.read();
    									chrChar = (char)intChar;
    									strChar =String.valueOf(chrChar);
    									strBufferClose=strBufferClose+strChar;
    									skip++;
    								}
    ....
    mais ce code parsait un fichier xml dans un arbre de référence pour construire un fichier html...alors p-e pas exactement ce que tu recherches
    J'espere t'avoir mis sur une piste!
    au plaisir
    max
    La perfection n'est pas un but, l'amélioration constante devrait l'être!
    La position des Développeurs de developpez avec les explications

  3. #3
    Membre du Club
    Inscrit en
    Juin 2002
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 101
    Points : 42
    Points
    42
    Par défaut
    ben tout ca je sais faire... mais je pensais que l'API XML permettait d'utiliser des methodes pour detecter, recuperer, etc des balises...

    merci quand meme de ta proposition

    Obelix

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    509
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 509
    Points : 568
    Points
    568
    Par défaut
    Citation Envoyé par obelix
    ben tout ca je sais faire... mais je pensais que l'API XML permettait d'utiliser des methodes pour detecter, recuperer, etc des balises...

    merci quand meme de ta proposition

    Obelix
    Oui si le fichier HTML est bien formé (toute balise doit etre fermé ) tu peux utiliser les API DOM ou SAX . SI le fichier n'est pas trop lourd DOM est peut etre plus simple d'utilisation sinon SAX n'est pas bcp plus compliqué .

    http://cynober.developpez.com/tutoriel/java/xml/jdom/
    http://smeric.developpez.com/java/cours/xml/sax/
    UML avec VIOLET

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 167
    Points : 120
    Points
    120
    Par défaut
    Pensez aussi a regarder du coté de JDOM...ca simplifie grandement le XML ....donc le HTML....
    La naissance est le seul fruit du hasard

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    509
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 509
    Points : 568
    Points
    568
    Par défaut
    Peu de temps apres avoir lu ce post j'ai lu le tutoriel sur les commons digester de developpez.com du coup je pense qu'il est tres possible de realiser ce que tu veux grace aux commons digester , en gros il s'agit d'un moteur SAX parametrable par fichier XML une fois le fichier de regles realiser , on demande au digester de parser le XML(ici du xhtml) et on recupere un arbre d'objet tel que demander dans le fichier de conf .
    Bon pour resumé c'est une lib de mapping objet/XML !!
    UML avec VIOLET

  7. #7
    Membre habitué

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2002
    Messages : 125
    Points : 150
    Points
    150
    Par défaut
    pour info il existe une API gratuite pour parser du HTML : HTMLParser
    ne ré-inventez pas la roue, allez chercher dans les Commons de Jakarta

  8. #8
    Membre du Club
    Inscrit en
    Juin 2002
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 101
    Points : 42
    Points
    42
    Par défaut
    vous me proposeez des technos... merci mais mon probleme est justement de choisir la techno qui me permet de parcourir du code HTML et extraire le texte d'un tableau HTML.

    merci de votre aide

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2004
    Messages : 48
    Points : 58
    Points
    58
    Par défaut
    Tu peux aussi utiliser des expressions XPath pour parcourir ton document. Jette un coup d'oeil à XPathAPI.

    - Colargol

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    509
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 509
    Points : 568
    Points
    568
    Par défaut
    Citation Envoyé par obelix
    vous me proposeez des technos... merci mais mon probleme est justement de choisir la techno qui me permet de parcourir du code HTML et extraire le texte d'un tableau HTML.

    merci de votre aide
    tu veux qu'on choisisse pour toi ???
    UML avec VIOLET

  11. #11
    Membre du Club
    Inscrit en
    Juin 2002
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 101
    Points : 42
    Points
    42
    Par défaut
    ben je voudrais beneficier de votre eventuel expereince pour m'orienter sur telle ou telle methode car je n'ai aucune exeprience dans la manipulation de l'XML... sachant que j'ai pas bcp de temps je voudrais pas me planter d'outil !

    merci

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    509
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 509
    Points : 568
    Points
    568
    Par défaut
    En ce qui me concerne je connais que le JDOM et SAX , pour la simplicité JDOM est mieux , mais SAX peut resoudre pas mal de probleme !!
    SInon tu as lu la doc sur le common Diggester , sinon quelqu'un ta proposer HtmlParser , je connais pas , à toi de te renseigner
    UML avec VIOLET

  13. #13
    Membre du Club
    Inscrit en
    Juin 2002
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 101
    Points : 42
    Points
    42
    Par défaut
    ok merci... je vais donc regarder les technos proposées !

    sinon, personne n'a fait un truc de ce genre ?

    Lecture d'un fichier HTML balise par balise, detection d'une balise TABLE et ensuite lecture des lignes et colonnes ?


  14. #14
    Membre habitué

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2002
    Messages : 125
    Points : 150
    Points
    150
    Par défaut
    tu devrais vraiment regarder les exemples fournis avec HTMLParser.
    ne ré-inventez pas la roue, allez chercher dans les Commons de Jakarta

  15. #15
    Membre du Club
    Inscrit en
    Juin 2002
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 101
    Points : 42
    Points
    42
    Par défaut
    oui c'est ce que j'ai fait et c'est celui qui me parait le mieux adapte à mes besoins... merci

    il y a JDOM qui parait etre simple pour le parcours XML aussi !

  16. #16
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    509
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 509
    Points : 568
    Points
    568
    Par défaut
    Citation Envoyé par jcarre
    tu devrais vraiment regarder les exemples fournis avec HTMLParser.
    Etant donner le nom de la lib je dirais que c'est exactement ce que tu cherche , mais je connaissais pas et ce baser sur un nom pour le choix d'une techno c'est plutot legé !!!!
    UML avec VIOLET

  17. #17
    Membre éprouvé
    Avatar de ozzmax
    Inscrit en
    Novembre 2005
    Messages
    977
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Novembre 2005
    Messages : 977
    Points : 959
    Points
    959
    Par défaut
    Ouais j'avais fais un truc de ce genre mais on avait pas le droit d'utiliser HTMLparser fournis par java
    il fallais implémenter notre propre parseur...
    Plein de plaisir!!
    La perfection n'est pas un but, l'amélioration constante devrait l'être!
    La position des Développeurs de developpez avec les explications

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment afficher un fichier HTML
    Par Xavier dans le forum C++Builder
    Réponses: 8
    Dernier message: 30/03/2004, 07h56
  2. Comment lancer un fichier HTML ??
    Par Franck.H dans le forum Windows
    Réponses: 2
    Dernier message: 25/01/2004, 20h00
  3. Lancer un fichier html
    Par miss mary b dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 01/01/2004, 20h04
  4. Réponses: 6
    Dernier message: 23/12/2003, 15h30
  5. parser un fichier html
    Par noarno dans le forum ASP
    Réponses: 2
    Dernier message: 10/12/2003, 17h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo