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

Collection et Stream Java Discussion :

[regexp] recuperation texte


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2005
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 58
    Par défaut [regexp] recuperation texte
    Bonjour tt le monde et joyeux noel ;
    voila j un soucie c que c la premiere fois que je manipule un fichier xml et je veux en utilisant regexp avoir tt le texte qui eitse entre les deux balises ??

    Pattern pattern = Pattern.compile("<balise>")
    Matcher matcher = pattern.matcher(fichierxml)
    while (matcher.find())
    {
    la je veux recupere tt le texte qui existe entre <balise> et </balise>
    }

    merci

  2. #2
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Si tu veux manipuler des fichiers xml autant passer par les classes qui sont destnés à le faire telles que DOM, SAX ou encore xpath ou éventuellement un API tierce partie telle que JDOM
    Celà t'évitera d'avoir à bidouiller ton propre parser
    ++

  3. #3
    Membre éprouvé Avatar de yakanet
    Homme Profil pro
    Inscrit en
    Décembre 2005
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39

    Informations forums :
    Inscription : Décembre 2005
    Messages : 137
    Par défaut
    Pour ma part j'aurai plus fait pour le regexp quelque chose du style "<balise>([^<]+)</balise>"

    Maintenant je n'ai jamais utilisé les expressions régulières en java, mais déja je pense que tu peux tester

  4. #4
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Par défaut
    Citation Envoyé par yakanet
    Pour ma part j'aurai plus fait pour le regexp quelque chose du style "<balise>([^<]+)</balise>"
    À ce propos, tu sais comment faire "n'importe quel caractère sauf < et >"?
    [^ ] (sauf) ne permet que d'ignorer 1 caractère.

  5. #5
    Membre confirmé
    Inscrit en
    Mai 2005
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 58
    Par défaut
    salut tt le monde,

    voila j'ai pu enfin reoudre le probeleme en utilisant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IdAnnonce:([^+]*?)</AnnonceXML>
    Merci

  6. #6
    Membre confirmé
    Inscrit en
    Mai 2005
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 58
    Par défaut
    PAR EXEMPLE J UN BLOC xml dans un fichier :
    <Annonce>
    - corps de l'annonce
    <Evenements>
    - code évènement
    </Evenements>
    - Code Jal
    - Numéro Annonce
    - N° Dépôt légal
    - Date dépôt légal
    </Annonce>
    et je veux boucler sur <Annonce> et a l'interieur de chaque boucle je veux recuperer:
    - corps de l'annonce
    <Evenements>
    - code évènement
    </Evenements>
    - Code Jal
    - Numéro Annonce
    - N° Dépôt légal
    - Date dépôt légal
    Merci pour n'importe que coup de pouce !!

  7. #7
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Pour parcourir ton documents XML il existe des boites à outils plus qu'utiles (cf mon post précédent)

    Va faire un tour sur la FAQ java tu verras ce dont je parle

    http://java.developpez.com/faq/java/?page=langage_xml

    ++

  8. #8
    Membre confirmé
    Inscrit en
    Mai 2005
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 58
    Par défaut
    voila ce que je fais:
    Pattern pattern = Pattern.compile("<Annonce>([^.]+)</Annonce>");
    mais ca ca me donne en faite tt les infos entre la premier balise<Annonce> et la derniere </Annonce> qui existe dans le fichier !!
    moi je veux que les infos entre la premiere et celle juste apres !!

  9. #9
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    Il faut utiliser les Reluctant quantifiers qui prennent en compte le resultat le plus petit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Pattern pattern = Pattern.compile("<Annonce>([^.]+?)</Annonce>");
    Mais comme cela a déjà été dit, pour analyser du XML, DOM ou SAX serait plus simple...

    a++

  10. #10
    Membre confirmé
    Inscrit en
    Mai 2005
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 58
    Par défaut
    merci c resolue

  11. #11
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par maximus001ma
    merci c resolue
    Un petit clic sur le bouton (en bas à gauche de la page)

    a++

  12. #12
    Membre confirmé
    Inscrit en
    Mai 2005
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 58
    Par défaut
    bonjour tout le monde,

    voila mon probleme c que lorsque j'utilise l'expression reguliere:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Pattern pattern = Pattern.compile("IdAnnonce+[^\"]+</AnnonceXML>");
    et dans le code j'ai:
    while (matcherAnnonce.find())

    donc il me sort la premiere balise correct puis il saute la deuxieme et me sors la troisieme puis saute 2 ou 3 balise..!!

    Quelqu'un a une idée pourquoi?? est ce un probleme de motif!!

    Merci

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 08/12/2006, 22h51
  2. Recuperer texte du JtextPane
    Par mortalius dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 20/05/2006, 18h19
  3. Recuperer texte liste deroulante
    Par flydragon dans le forum Langage
    Réponses: 7
    Dernier message: 06/04/2006, 17h08
  4. [RegExp] recuperer le contenu du <body> d'une page web
    Par JANDALI dans le forum Langage
    Réponses: 5
    Dernier message: 12/02/2006, 23h52
  5. [langage] [RegExp] Récupérer une portion de phrase
    Par GLDavid dans le forum Langage
    Réponses: 4
    Dernier message: 27/08/2004, 22h01

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