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

Format d'�change (XML, JSON...) Java Discussion :

[JAVA][XML] r�cup�rer des valeurs de balises apr�s filtrage


Sujet :

Format d'�change (XML, JSON...) Java

  1. #1
    Membre confirm�
    Homme Profil pro
    �tudiant
    Inscrit en
    Septembre 2018
    Messages
    150
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Septembre 2018
    Messages : 150
    Par d�faut [JAVA][XML] r�cup�rer des valeurs de balises apr�s filtrage
    Bonjour,

    j'ai gr�ce � votre aide pu avancer dans un projet. celui-ci me permet de r�cup�rer le texte entre des balises.
    Afin de faire �voluer ce code, je d�sire maintenant appliquer un filtre � celui-ci comme suit:

    voici l'exemple de xml

    Code XML : 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
    29
    30
    31
    32
    <PRE>
    P0695/20 NOTAMN
    Q) LFFF/QOBAW/IV/M  /E /000/006/4940N00327E001
    A) LFFF B) 2002260844 C) PERM
    E) MEASURE MAST NR02087 AT VERSIGNY AISNE WITHDRAWN 
    PSN : 494007N 0032706E
    CREATED: 26 Feb 2020 08:45:00 
    SOURCE: EUECYIYN
    </PRE>
    <PRE>
    P0676/20 NOTAMN
    Q) LFFF/QOBCE/IV/M  /E /000/013/4634N00259E001
    A) LFFF B) 2002241539 C) PERM
    E) MEASURE MAST RDL169/8.5NM LFJU AD : 
    PSN : 463423N 0025857E 
    HEIGHT : 334FT 
    ELEV : 1213FT 
    LIGHTING : DAY AND NIGHT
    CREATED: 24 Feb 2020 15:39:00 
    SOURCE: EUECYIYN
    </PRE>
    <PRE>
    P0662/20 NOTAMN
    Q) LFFF/QOLAS/IV/M  /E /000/010/4909N00315E001
    A) LFFF B) 2002211649 C) 2003210800
    E) OBST NR E0229 LIGHTS OUT OF SERVICE (2 OUT OF 8 WIND TURBINES)
    PSN : 490903N 0031449E
    HEIGHT : 427FT
    ELEV: 984FT
    CREATED: 21 Feb 2020 16:51:00 
    SOURCE: EUECYIYN
    </PRE>

    le code Java ci-dessous me permet de r�cup�rer toute les attributs entre les balises (et d'une certaine mani�re me convient tr�s bien). Sauf que dans mon �volution, j'ai vu qu'� l'aide de regex je peux appliquer un filtre (j'ai pu lire �a dans un tuto).
    Par cons�quent je souhaiterais savoir � quel moment je dois appliquer ce filtre.
    voici ci-dessous mon code Java :

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    package extraction_xml;
     
    import java.io.*;
    import javax.xml.xpath.*;
    import org.w3c.dom.Document;
    import org.xml.sax.SAXException;
    import javax.xml.namespace.*; 
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.parsers.ParserConfigurationException;
    import org.w3c.dom.Node;
    import org.w3c.dom.NodeList;
     
    public class Extraction_avec_filtre {
     
    	static File fichier;
     
    	// Constructeur 
    	public Extraction_avec_filtre (String url){
    		fichier = new File(url);
    	}
     
    	// Méthodes 
    	/**
             * créer une instance de XPath et lui faire évaluer une XPathExpression
         * @param file
         * @param expression
         * @param retour
         * @return 
             */
    	public String evaluerDOM(File file, String expression, QName retour){
    		String texteCopie=null;
     
    		try{
    			DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
    			DocumentBuilder constructeur = docBuilderFactory.newDocumentBuilder();
    			Document document = constructeur.parse(file);
     
    			//création du XPath 
    			XPathFactory fabrique = XPathFactory.newInstance();
    			XPath xpath = fabrique.newXPath();
     
    			//évaluation de l'expression XPath
    			XPathExpression exp = xpath.compile(expression);
    			NodeList resultat = (NodeList) exp.evaluate(document,XPathConstants.NODESET); // récupère la liste de Node correspondant au xpath (donc des pre)
     
    			StringBuilder sb=new StringBuilder(); // pour faire la concaténation
    			for(int i=0; i<resultat.getLength(); i++) { // parcours
    				if ( i!=0 ) { // pour avoir des séparations entre chaque node, sauf pour le premier
                                        sb.append("\n--------------------------\n");//ajout d'une ligne de séparation par exemple
                                        //sb.append("\n"); // ajoute une ligne vide 
    				}
     
                                    //sb.append("Ligne ").append(i+1).append("\n");//ajout d'un titre par exemple
                                    sb.append("\n");//ajout d'une ligne de séparation par exemple
    				Node pre = resultat.item(i); // on récupère le node d'index i 
    				sb.append(pre.getTextContent()); // concaténation du texte du node
    			}
     
    			texteCopie=sb.toString(); // 
    		}catch(XPathExpressionException xpee){
    			xpee.printStackTrace();
    		} catch (ParserConfigurationException e) {
    			e.printStackTrace();
    		} catch (SAXException e) {
    			e.printStackTrace();
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    		return texteCopie;
    	}
     
    	/**
             * @param args
             */
    	public static void main(String[] args) throws IOException {
    		Extraction test = new Extraction("/Users/moi/Desktop/testNOTAM/MonFichier.xml");
    		String resultat = test.evaluerDOM(fichier, "//PRE", XPathConstants.STRING);
     
                   /* File Notams = new File("/Users/moi/Desktop/notams_test.txt") ;
                try (PrintWriter out = new PrintWriter(new FileWriter(Notams))) {
                    out.write(resultat) ; //écris bonjour dans le fichier
                    out.println(); //fais un retour à la ligne dans le fichier
                    out.close() ; //Ferme le flux du fichier, sauvegardant ainsi les données.*/
                    System.out.println(resultat);
                } 
    	}
     
    /*}*/
    Par exemple, supposons une fen�tre avec un radio bouton qui me permet de filtrer et de r�cup�rer juste l'ensemble du texte entre balise <PRE> si celle-ci contient le mot "QOBCE" comment pourrais-je faire s'il vous plait ?
    Dois-je utiliser dans le string builder mon filtre??? Je vous avoue avoir de grosse difficult�s...
    Par avance merci pour votre aide

  2. #2
    Membre confirm�
    Homme Profil pro
    �tudiant
    Inscrit en
    Septembre 2018
    Messages
    150
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Septembre 2018
    Messages : 150
    Par d�faut
    personne pour m'aider s'il vous plait?
    malgr� les instructions dans les FAQ/Tuto pas de solutions

Discussions similaires

  1. R�cup�rer des valeurs entre balises dans textView
    Par jeremyvb11 dans le forum Composants graphiques
    R�ponses: 0
    Dernier message: 07/11/2017, 12h05
  2. [XML] R�cup�rer la valeur des attributs
    Par Elyon64 dans le forum XML/XSL et SOAP
    R�ponses: 2
    Dernier message: 10/03/2008, 19h07
  3. [C#-XML] R�cup�rer les valeurs des noeuds enfants
    Par cyllix dans le forum Windows Forms
    R�ponses: 1
    Dernier message: 23/06/2006, 11h54
  4. [SimpleXML] Parser un XML et en r�cup�rer des valeurs
    Par mickael.be dans le forum Biblioth�ques et frameworks
    R�ponses: 6
    Dernier message: 15/04/2006, 15h08
  5. code java pour r�cup�rer la valeur d'un neoud XML
    Par MASSAKA dans le forum Format d'�change (XML, JSON...)
    R�ponses: 1
    Dernier message: 14/10/2005, 15h17

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