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 :

Créer un org.w3c.dom.Document depuis une String


Sujet :

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

  1. #1
    Membre confirmé
    Inscrit en
    Février 2004
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 107
    Par défaut Créer un org.w3c.dom.Document depuis une String
    Bonjour,

    Voila j'ai une string. Je sais que cette chaine de caractère est bien en format XML. Je souhaite créer un org.w3c.dom.Document à partir de ce string.

    Merci

  2. #2
    Membre émérite
    Profil pro
    Architecte technique
    Inscrit en
    Mars 2002
    Messages
    966
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mars 2002
    Messages : 966
    Par défaut
    cf : DOMParser

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 94
    Par défaut
    Serait-il possible d'avoir une réponse plus fournie?

    Je reprends ce topic car celà correspond exactement à ce que je souhaite faire.
    En gros je récupère du contenu XML d'une page JSP grâce à un JScript snippet. Ce contenu retourné est stocké dans un String.

    Maintenant, j'ai pleins de recherches et de traitement à réaliser sur le contenu de mon String, d'où mon besoin pour un objet de type DOM qui puisse me permettre d'accéder aux éléments par getNode, getSibling, et tous ces fabuleux trucs...


    Donc, la question pour débuter est:
    comment je dois initialiser l'objet DOMParser (et autres si besoin?) pour "traduire" ma variable String?


    MERCI

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 466
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 466
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DocumentBuilderFactory.newDocumentBuilder().parse(new InputSource(new StringReader("Chaine xml")));

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 94
    Par défaut
    Ok merci morbo! je vais tester comme ca.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 94
    Par défaut
    Mmmh.
    J'ai toute une série d'erreurs:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    org.xml.sax.SAXParseException: Content is not allowed in prolog.
    	at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:236)
    	at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:215)
    	at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:386)
    	at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:316)
    	at com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:1438)
    	at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDispatcher.dispatch(XMLDocumentScannerImpl.java:899)
    	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:368)
    	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:834)
    	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764)
    	at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:148)
    	at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:250)
    	at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:292)

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    StringReader sr = new StringReader(xmlString);
    		InputSource is = new InputSource(sr);
    		DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    		factory.setValidating(true);
    		factory.setNamespaceAware(true);
    		DocumentBuilder builder = null;
    		try {
    			builder = factory.newDocumentBuilder();
    		} catch (ParserConfigurationException e1) {
    			// TODO Auto-generated catch block
    			e1.printStackTrace();
    		}
     
    		try {
     
    			// EXTRACTING INFORMATION FROM THE XML
    			Document document = builder.parse(is);
     
    			NodeList lvl1 = document.getElementsByTagName("FEMME");
    			Node lvl1A = lvl1.item(1);
    			String print = lvl1A.getTextContent();
    			System.out.println(print);
     
     
    		} catch (SAXException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}

    Je veux juste tester pour l'instant la récupération de l'élement qui a pour name="FEMME", et afficher l'élément.

    Apparemment toutes les erreurs émanent de mon deuxieme try{}...
    Any ideas?

  7. #7
    Membre Expert
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 466
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 466
    Par défaut
    Je pense que xmlString est vide ou n'est pas un xml valide : c'est sauvent un pb d'encodage.
    is.getEncoding() doit être le même que celui déclaré dans le xml.

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 94
    Par défaut
    effectivement j'ai testé et il xmlString est NULL.
    Bizarre, je vais tout revérifier, et reviens à vous si jamais un autre soucis se pointe.


    merci

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 94
    Par défaut
    En fait je ne comprends pas pourquoi mon xmlString est NULL.

    J'exécute un Jscript snippet lancé à la page Firefox pour récupérer le contenu XML de la page JSP appelée.

    D'ailleurs manuellement, qd je lance la JSP dans le navigateur, je fais ensuite clic-droit > source , et il y a bien au début du doc la ligne:

    <?xml version="1.0" encoding="utf-8"?>


    Voici mon JScript snippet:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    if (!browserVersion.isIE) {"
    				+ "if (this.browserbot.getCurrentWindow().document instanceof XMLDocument) {"
    				+ "new XMLSerializer().serializeToString(this.browserbot.getCurrentWindow().document); }"
    				+ "} else {"
    				+ "var xmlDocument = this.browserbot.getCurrentWindow().document.XMLDocument;"
    				+ "if (xmlDocument != null) {xmlDocument.xml; } }");
    (ne tenez pas compte des guillemets et autres "+" ...)

Discussions similaires

  1. [XSD] [DOM] - Valider un org.w3c.dom.Document construit programmatiquement avec un XSD
    Par braindeadbzh dans le forum Format d'échange (XML, JSON...)
    Réponses: 12
    Dernier message: 10/03/2011, 12h55
  2. Réponses: 0
    Dernier message: 28/09/2008, 12h59
  3. Passage de org.w3c.dom.document à XML
    Par Ikare dans le forum Flex
    Réponses: 2
    Dernier message: 03/06/2008, 18h07
  4. [DOM] org.w3c.dom.Document toujours vide
    Par LGnord dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 05/12/2007, 13h45
  5. [DOM] Récupérer contenu d'un objet de type org.w3c.dom.Document dans une chaine de caractèr
    Par danyboy85 dans le forum Format d'échange (XML, JSON...)
    Réponses: 4
    Dernier message: 18/01/2007, 10h38

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