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 :

Extraire du XML


Sujet :

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

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 10
    Par défaut Extraire du XML
    Bonjour à tous,
    Je développe actuellement une application qui me permette de lire et d'extraire des données d'un fichier xml.
    Ci dessous une partie qui doit stocker le resultat de la commande reader.gettext
    dans une variable.

    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
    package tests;
     
    import java.io.IOException;
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.parsers.ParserConfigurationException;
    import org.w3c.dom.Document;
    import org.w3c.dom.Element;
    import org.w3c.dom.Element;
    import org.w3c.dom.NodeList;
    import org.xml.sax.SAXException;
    public class Main {
    public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException {
    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    DocumentBuilder parser = factory.newDocumentBuilder();
    Document document = parser.parse("C:\\Documents and Settings\\Auriol\\Bureau\\Project_Thesis\\metis_model_2.xml");
    Element Catalogue = document.getDocumentElement();
    NodeList Objects = Catalogue.getElementsByTagName("string");
    System.out.println("Tous les objets textes du document");
    for (int i = 0; i < Objects.getLength(); i++) {
    System.out.println(Objects.item(i).getFirstChild().getNodeValue());
    }
    }
    }

    ce code génère l'erreur suivante que je ne comprends pas.

    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
    init:
    deps-jar:
    Created dir: C:\Documents and Settings\Auriol\Mes documents\NetBeansProjects\Tests\build\classes
    Compiling 1 source file to C:\Documents and Settings\Auriol\Mes documents\NetBeansProjects\Tests\build\classes
    compile:
    run:
    Exception in thread "main" java.net.MalformedURLException: unknown protocol: c
    at java.net.URL.<init>(URL.java:574)
    at java.net.URL.<init>(URL.java:464)
    at java.net.URL.<init>(URL.java:413)
    at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:650)
    at com.sun.org.apache.xerces.internal.impl.XMLVersionDetector.determineDocVersion(XMLVersionDetector.java:186)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:771)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
    at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:107)
    at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:225)
    at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:283)
    at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:180)
    at tests.Main.main(Main.java:35)


    Merci d'avance de votre aide

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Le parseur prend un url, pas un chemin vers un fichier. Tu peux construire une url pointant vers un fichier en faisant


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new File(cheminVersFichier).toURI().toURL().toExternalForm()

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 10
    Par défaut
    Bonjour j'ai fait ce que vous m'avez dit mais je retrouve toujours la même erreur. Voici mon code:

    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
    public class Main {
    public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException {
     
     System.out.println("Ok OK Ok");
     DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    DocumentBuilder parser = factory.newDocumentBuilder();
    Document document = parser.parse(new File("G:\\metis_model_2.xml").toURI().toURL().toExternalForm());
    Element Catalogue = document.getDocumentElement();
    NodeList Objects = Catalogue.getElementsByTagName("string");
    System.out.println("Tous les objets textes du document");
    for (int i = 0; i < Objects.getLength(); i++) {
    System.out.println(Objects.item(i).getFirstChild().getNodeValue());
    }
    }
    }

    Et ci-dessous l'erreur que je trouve

    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
    Exception in thread "main" java.net.ConnectException: Connection timed out: connect
            at java.net.PlainSocketImpl.socketConnect(Native Method)
            at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
            at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
            at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
            at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
            at java.net.Socket.connect(Socket.java:519)
            at java.net.Socket.connect(Socket.java:469)
            at sun.net.NetworkClient.doConnect(NetworkClient.java:163)
            at sun.net.www.http.HttpClient.openServer(HttpClient.java:394)
            at sun.net.www.http.HttpClient.openServer(HttpClient.java:529)
            at sun.net.www.http.HttpClient.<init>(HttpClient.java:233)
            at sun.net.www.http.HttpClient.New(HttpClient.java:306)
            at sun.net.www.http.HttpClient.New(HttpClient.java:323)
            at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:852)
            at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:793)
            at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:718)
            at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1041)
            at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:677)
            at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startEntity(XMLEntityManager.java:1315)
            at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startDTDEntity(XMLEntityManager.java:1282)
            at com.sun.org.apache.xerces.internal.impl.XMLDTDScannerImpl.setInputSource(XMLDTDScannerImpl.java:283)
            at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.dispatch(XMLDocumentScannerImpl.java:1193)
            at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.next(XMLDocumentScannerImpl.java:1090)
            at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:1003)
            at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648)
            at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510)
            at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:807)
            at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
            at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:107)
            at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:225)
            at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:283)
            at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:180)
            at tests.Main.main(Main.java:81)
    Si quelqu'un pourrait m'aider ce serai gentil. En fait, l'objectif du code est d'extraire des informations d'un fichier XML et de les stocker dans une variable qui sera ensuite envoyée dans un fichier .txt

    Merci d'avance

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Ce n'est pas ce que j'appellerais la "même erreur". Si tu lit ton erreur tu verra qu'elle est complètement différente. En l'occurence le parseur xml n'a pas pu se connecter sur internet poru récupérer les éléments dont il a besoin pour parser ton document xml, a priori des DTDs ou des xsd référencées dans ton xml.

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 10
    Par défaut
    Merci,

    Penses tu qu'il faut que j'importe des librairies?? pour résoudre le problème? (à vrai dire je suis débutante).

    Merci beaucoup pour ton aide

Discussions similaires

  1. ETL capable d'Extraire du XML depuis champ CLOB et le Parser
    Par anis1977 dans le forum Alimentation
    Réponses: 2
    Dernier message: 01/03/2024, 09h14
  2. [AJAX] Extraire données XML d'un fichier
    Par Borowsky dans le forum Général JavaScript
    Réponses: 20
    Dernier message: 20/06/2008, 11h08
  3. Comment extraire du xml pour faire une bdd avec php?
    Par baleiney dans le forum XQUERY/SGBD
    Réponses: 9
    Dernier message: 09/03/2008, 14h55
  4. extraires données xml d'un char*
    Par wadcyr8_197 dans le forum XML
    Réponses: 15
    Dernier message: 27/06/2007, 10h22
  5. extraire données ==>XML
    Par cocotina dans le forum Informix
    Réponses: 1
    Dernier message: 20/06/2005, 10h51

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