Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2744 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Java/XML : Le Parser de Sun ?

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Précédente
Auteur Sujet :

Java/XML : Le Parser de Sun ?

n°498714
samuelp
Posté le 26-08-2003 à 17:12:42  profilanswer
 

Bonjour,
 
je ne sais pas si vous connaissez le Parser de Sun (JAXP pour Java Application Xml Parser), l'un des plus standards.
J'essaye de le telecharger via le site de Sun mais je n'y arrive point : seules les specifications sont disponibles.
Savez vous comment je peux obtenir ce Parser pour ma plateforme (Linux) sachant que j'utilise le SDK 1.4.2 (qui ne comporte pas ce Parser) ?

mood
Publicité
Posté le 26-08-2003 à 17:12:42  profilanswer
 

n°498717
kadreg
profil: Utilisateur
Posté le 26-08-2003 à 17:13:35  profilanswer
 

J'sé pas, j'utilise xerces, au moins, c'est libre (ce qui ne l'empêche pas d'être de la merde, mais bon).


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
n°498720
benou
Posté le 26-08-2003 à 17:15:14  profilanswer
 

JAXP = Java API for XML Processing  
 
c'est pas une implémentation, c'est une spécification. Xerces associé à Xalan est une implémentation de JAXP
 
(si je dis pas de conneries :/)


---------------
ma vie, mon oeuvre - HomePlayer
n°498728
samuelp
Posté le 26-08-2003 à 17:21:37  profilanswer
 

benou a écrit :

JAXP = Java API for XML Processing  
 
c'est pas une implémentation, c'est une spécification. Xerces associé à Xalan est une implémentation de JAXP
 
(si je dis pas de conneries :/)


Oki.
Bon en fait je me remet a Java (Aie) et je decouvre un peu plus profondement XML (re Aie).
J'ai donc pris un exemple sur le net (une sorte de Hello World en Java XML) pour pouvoir les implementer dans une application.
 
Il me chie dans la colle quand je fais ça :
import com.sun.xml.parser.*;
import org.xml.sax.*;
 
En fait ces librairies n'existent pas quand j e passe au compilateur (javac)
 
Saurais tu d'ou vient le pb ? (Un flag que j'aurais oublie ?)

n°498731
samuelp
Posté le 26-08-2003 à 17:22:00  profilanswer
 

kadreg a écrit :

J'sé pas, j'utilise xerces, au moins, c'est libre (ce qui ne l'empêche pas d'être de la merde, mais bon).


Parait qu'il n'est pas standard ?
M'enfin, en dernier recours...

n°498737
benou
Posté le 26-08-2003 à 17:26:24  profilanswer
 

ton package sun.com... est bizare : en principe c'est javax.xml.parsers.
 
d'ailleur un petit cou de google et hop : http://java.sun.com/xml/jaxp/dist/ [...] mmary.html
regarde en haut à droite.
 
=> faut pas utiliser cette classe là => ta class HelloXML est foireuse


---------------
ma vie, mon oeuvre - HomePlayer
n°498741
benou
Posté le 26-08-2003 à 17:28:06  profilanswer
 

samuelp a écrit :


Parait qu'il n'est pas standard ?


tin mais renseigne toi un peu avant de sortir des "y parait" !
 
http://xml.apache.org/xerces2-j/index.html -> search "JAXP"


Message édité par benou le 26-08-2003 à 17:28:18

---------------
ma vie, mon oeuvre - HomePlayer
n°498755
samuelp
Posté le 26-08-2003 à 17:34:56  profilanswer
 

benou a écrit :

ton package sun.com... est bizare : en principe c'est javax.xml.parsers.
 
d'ailleur un petit cou de google et hop : http://java.sun.com/xml/jaxp/dist/ [...] mmary.html
regarde en haut à droite.
 
=> faut pas utiliser cette classe là => ta class HelloXML est foireuse


 
Oki.
Bon import javax.xml.parser ne passe pas non plus, va falloir que je le debusque ce parser...

n°498765
benou
Posté le 26-08-2003 à 17:38:34  profilanswer
 

si t'es en JDK 1.4 tu devrais l'avoir direct.
 
sinon tu dois récupérer JAXP.
 
ensuite faut récupérer les implémentations de ces API => xerces & xalan sur xml.apache.org


---------------
ma vie, mon oeuvre - HomePlayer
n°498767
samuelp
Posté le 26-08-2003 à 17:38:52  profilanswer
 

Citation :


 
javax.xml.parsers  
org.w3c.dom  
org.xml.sax  
org.xml.sax.helpers  
 
Attention : cette librairie ne fait pas partie du JDK ! Vous pouvez la télécharger à partir du site de Sun. Toutes les classes sont stockées dans deux archives JAR. Il vous faut donc, pour pouvoir les utiliser, ne pas oublier de lier les archives à Java via la variable d'environnement CLASSPATH. Sans cette étape, rien ne compilera !
 


 
J'ai compris...

mood
Publicité
Posté le 26-08-2003 à 17:38:52  profilanswer
 

n°498772
benou
Posté le 26-08-2003 à 17:40:51  profilanswer
 

samuelp a écrit :

[quote]J'ai compris...


remarque : en jdk1.4 ca fait partit des apis standards (les API, pas les implémentations)
 
edit : en fait je pense q'uil y a aussi une implémentation ... :/


Message édité par benou le 26-08-2003 à 17:41:26

---------------
ma vie, mon oeuvre - HomePlayer
n°498775
samuelp
Posté le 26-08-2003 à 17:41:57  profilanswer
 

En fait c'est bon je l'avais, c'est juste ValidatingParser qui n'existe plus :/

n°498781
darklord
You're welcome
Posté le 26-08-2003 à 17:44:12  profilanswer
 

kadreg a écrit :

J'sé pas, j'utilise xerces, au moins, c'est libre (ce qui ne l'empêche pas d'être de la merde, mais bon).


 
 [:rofl]


---------------
Just because you feel good does not make you right
n°498782
darklord
You're welcome
Posté le 26-08-2003 à 17:44:29  profilanswer
 

benou a écrit :

JAXP = Java API for XML Processing  
 
c'est pas une implémentation, c'est une spécification. Xerces associé à Xalan est une implémentation de JAXP
 
(si je dis pas de conneries :/)


 
non non c'est juste :o


---------------
Just because you feel good does not make you right
n°498814
samuelp
Posté le 26-08-2003 à 18:01:28  profilanswer
 

Je suis completement à la rue.
J'ai vu quelques exemples pour parser un fichier XML (par exemple, ignorer les commentaires, transformer certains caracteres speciaux, ou encore verifier la conformité d'un fichier XML)
 
Par contre, ce que j'aimerai bien, c'est d'avoir le principe de XSLT qui permet de transformer du XML en HTML. Je m'explique : si j'utilise le XML, c'est surtout pour stocker des informations (dictionnaires) que je pourrais ensuite reutiliser.
Par exemple  
<?xml 1.0 ........>
<DTD .....>
 <Dictionary lang='fr'>
  <Module id='1'>
   <attribute name='errorHandling'> Une erreur est survenue
   </attribute>
   </Module>
   </Dictionary>
 
 
Voila en gros j'aimerai pouvoir, en fonction de l'id du module et du nom de l'attribut, recuperer les mots correspondants à la bonne langue.
A ce que j'ai vu, je pourrais donc verifier l'integritéé du XML, ignorer lesc commentaires que je pourrais mettre pour expliquer ma demarche...
Par contre, je ne capte pas comment je pourrais recuperer les mots.
 
Voici a quoi ressemble (en gros) un Parser :
 

Code :
  1. By default, Comment nodes are created for each comment in an XML file. If it is not necessary to preserve the comments, there is no need to create the nodes. This example demonstrates how to create a parser that ignores comments.
  2.     try {
  3.         // Create a builder factory
  4.         DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
  5.    
  6.         // Configure it to ignore comments
  7.         factory.setIgnoringComments(true);
  8.    
  9.         // Create the builder and parse the file
  10.         Document doc = factory.newDocumentBuilder().parse(new File("infilename.xml" ));
  11.    
  12.         // doc will not contain any Comment nodes
  13.     } catch (SAXException e) {
  14.         // A parsing error occurred; the xml input is not valid
  15.     } catch (ParserConfigurationException e) {
  16.     } catch (IOException e) {
  17.     }
  18. Here's some sample input:
  19.     <?xml version="1.0" encoding="UTF-8"?>
  20.     <!-- comment -->
  21.     <root>
  22.         Some text
  23.         <!-- comment -->
  24.         Some text
  25.     </root>
  26.     <!-- comment -->
  27. and output:
  28.     <?xml version="1.0" encoding="UTF-8"?>
  29.     <root>
  30.         Some text
  31.    
  32.         Some text
  33. </root>


Message édité par samuelp le 26-08-2003 à 18:02:30
n°498822
benou
Posté le 26-08-2003 à 18:06:38  profilanswer
 
n°498826
samuelp
Posté le 26-08-2003 à 18:10:32  profilanswer
 


En fait j'en apprend touss les jours !
Il faudrait (arretes moi sir je me trompte) implementer une interface HandlerBase (et donc reimplementer toutes ses methodes) afin de pouvoir parser un fichier.
Pis encore, la methode startElement permet d'identifier les ouvertures de Tags.
 
Bon, si on faisait un Howto sur Prog pour XML, XSLT et Java-XML ?

n°498827
benou
Posté le 26-08-2003 à 18:12:00  profilanswer
 

ouais ben t'as pas fini d'apprendre ...
ce que tu dis c'est pour parser ton doc en mode SAX. C'est pas forcément une bonne idée.
 
lit un tutoriel bordel !


---------------
ma vie, mon oeuvre - HomePlayer
n°498841
samuelp
Posté le 26-08-2003 à 18:32:19  profilanswer
 

benou a écrit :

ouais ben t'as pas fini d'apprendre ...
ce que tu dis c'est pour parser ton doc en mode SAX. C'est pas forcément une bonne idée.
 
lit un tutoriel bordel !


Oki.
Bon j'ai encore regardé qqs tutoriels (va me falloir tout de meme un bon livre). Si j'ai bien compris :
JAX : C'est surtout une methode utile quand on reçoit des flux XML via le reseau ou pour tout echange d'infos en faible proportion
 
Sinon, il faut utiliser DOM c'est ça ? DOM permet de creer un arbre avec toutes les infos concernant le fichier XML et ainsi nous pouvons exploiter facilement les attributs et les elements d'un fichier XML. En gros, c'est ça ?

n°498861
benou
Posté le 26-08-2003 à 18:58:02  profilanswer
 

nan en gros c'est plutot l'inverse ! :D
 
DOM c'est bien pour le petits doc XML en faible volume parce que c'est lourd en utilisation mémoire. La construction de l'arbre DOM est très gourmande en place mémoire. Mais une fois construit il est facile et rapide à utilisé.
 
le SAX c'est bien quand tu as des gros volume car tu lis le fichier au fur et à mésure, mais du coup tu dois souvent tout refaire à la main (pas de XSLT, pas de XPATH, etc ...) ou utiliser des outils adaptés (générateur d'encodeur/décodeur de bean en XML utilisant SAX, etc ...)


---------------
ma vie, mon oeuvre - HomePlayer
n°499228
samuelp
Posté le 27-08-2003 à 08:17:51  profilanswer
 

benou a écrit :

nan en gros c'est plutot l'inverse ! :D
 
DOM c'est bien pour le petits doc XML en faible volume parce que c'est lourd en utilisation mémoire. La construction de l'arbre DOM est très gourmande en place mémoire. Mais une fois construit il est facile et rapide à utilisé.
 
le SAX c'est bien quand tu as des gros volume car tu lis le fichier au fur et à mésure, mais du coup tu dois souvent tout refaire à la main (pas de XSLT, pas de XPATH, etc ...) ou utiliser des outils adaptés (générateur d'encodeur/décodeur de bean en XML utilisant SAX, etc ...)


 
Oki.
Bon en gros j'ai bcp a apprendre.
Je viens meme de voir que l'on peut (facilement ?) parser un fichier XML avec l'importation des librairies : nanoXML
 
Par contre je sais pas si c'est standard :/

n°499245
darklord
You're welcome
Posté le 27-08-2003 à 08:58:57  profilanswer
 

samuelp a écrit :


Je viens meme de voir que l'on peut (facilement ?) parser un fichier XML avec l'importation des librairies : nanoXML
 
Par contre je sais pas si c'est standard :/


 
non
 
Si tu veux qqch de très simplet et complet (mais également non standard) prends JDom (www.jdom.org). C'est très intuitif


---------------
Just because you feel good does not make you right
n°499255
samuelp
Posté le 27-08-2003 à 09:07:00  profilanswer
 

DarkLord a écrit :


 
non
 
Si tu veux qqch de très simplet et complet (mais également non standard) prends JDom (www.jdom.org). C'est très intuitif


Merci :jap:
 
Sinon, je remarque un truc etrange :
J'ai donc téléchargé le nanoxml
Le repertoire de mon projet est le suivant :
/home/samuelp/software/projet
dans le projet y 2 arborescences :
-> com/easysoftware/installer
-> net/n3/nanoxml
 
Dans la premiere arborescence y a mon projet.
Dans mon fichier qui contient la methode main j'ai fait un :
package com.easysoftware.installer
 
Comme ça je positionne mon projet.
 
Helas quand je fais un :
import net.n3.nanoxml.* ;
Il me dit qu'il ne trouve rien à cette position :/
Si bien que si je redescend d'un repertoire (package projet.com.easysoftware.installer) là il me trouve bien le import projet.net.n3.nanoxml.*, mais le probleme c'est que ça fout la merde dans les packages importes (qui sont tous positionné avec import net.n3.nanoxml)
 
Quelqu'un aurait une explication ?

n°499626
samuelp
Posté le 27-08-2003 à 14:23:52  profilanswer
 

:bounce:

n°499814
samuelp
Posté le 27-08-2003 à 16:50:18  profilanswer
 

Personne pour le dernier probleme ?

n°499827
samuelp
Posté le 27-08-2003 à 17:00:02  profilanswer
 

J'ai trouvé. En fait faut placer le repertoire net dans le repertoire com :/

n°499853
darklord
You're welcome
Posté le 27-08-2003 à 17:32:15  profilanswer
 

ca m'étonnerait que ce soit la solution :o


---------------
Just because you feel good does not make you right
n°499898
samuelp
Posté le 27-08-2003 à 18:16:30  profilanswer
 

DarkLord a écrit :

ca m'étonnerait que ce soit la solution :o


Bah apres ça compile :/
Et XMLElement fonctionne.
A moins que mon IDE soit mal configuré (bah vi j'utilise Forte) cette solution fonctionne

n°499930
the real m​oins moins
Posté le 27-08-2003 à 19:14:12  profilanswer
 

ton ide est mal configuré


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°499931
samuelp
Posté le 27-08-2003 à 19:22:07  profilanswer
 

the real moins moins a écrit :

ton ide est mal configuré


 
Donc si je fais un :
package com.repertoire1.repertoire2.installer
et que le repertoire net se trouve dans le meme repertoire que le repertoire com, je devrais pouvoir utiliser :
import net.n3.nanoxml.* ?
 
Ok, je vais me renseigner

n°499933
the real m​oins moins
Posté le 27-08-2003 à 19:25:39  profilanswer
 

ben évidement


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°499942
samuelp
Posté le 27-08-2003 à 19:45:20  profilanswer
 

Bon vla le programme :
 

Code :
  1. package com.Software.Installer;
  2. import java.io.* ;
  3. import net.n3.nanoxml.* ;
  4. public class essai {
  5.    
  6.     private XMLElement element ;
  7.     /** Creates a new instance of essai */
  8.     public essai() {
  9.     }
  10.    
  11.     /**
  12.      * @param args the command line arguments
  13.      */
  14.     public static void main(String[] args) {
  15.     }
  16.    
  17. }


 
Vla comment se dispose mes repertoires :
 
lib -- com
          -- Sowtware
                     -- Installer
                                  -- fichier.java
    -- net
          -- n3
                -- nanoxml
                            -- fichiers.java
 
quand je fais un javac fichier.java ça me sort comme erreur :
 

Citation :


essai.java:11: package net.n3.nanoxml does not exist
import net.n3.nanoxml.* ;
^
essai.java:18: cannot resolve symbol
symbol  : class XMLElement
location: class com.Software.Installer.essai
    private XMLElement element ;
            ^
2 errors
 
 


 
 
Pourtant ça devrait marcher :/


Message édité par samuelp le 27-08-2003 à 19:46:24
n°499946
samuelp
Posté le 27-08-2003 à 19:50:23  profilanswer
 

J'ai pigé.
Si j'utilise javac il faut que je me place au niveau en dessous du com (dans le repertoire lib)

n°499949
the real m​oins moins
Posté le 27-08-2003 à 19:52:55  profilanswer
 

ben oui [:spamafote]
 
ps: lib c'est pour library, pq tu fous tes sources là!?
ps2: pq tu utilises pas un jar de nanoxml !?


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°499950
benou
Posté le 27-08-2003 à 19:53:22  profilanswer
 

samuelp a écrit :

J'ai pigé.
Si j'utilise javac il faut que je me place au niveau en dessous du com (dans le repertoire lib)


[:totoz]
 
PS : pas de majuscule dans les noms package !! :o


---------------
ma vie, mon oeuvre - HomePlayer
n°499956
samuelp
Posté le 27-08-2003 à 19:56:54  profilanswer
 

the real moins moins a écrit :

ben oui [:spamafote]
 
ps: lib c'est pour library, pq tu fous tes sources là!?
ps2: pq tu utilises pas un jar de nanoxml !?


Ben je sais pas. Je n'ai pas encore commencé le developpement de l'installer, mais je changerai certainement en src
 
Sinon pour le jar, j'y ai pensé, mais bon, ça mange pas de pain de savoi comment est constitué le paquetage et ça aide pour les chiens d'arret pour debuguer

n°499957
samuelp
Posté le 27-08-2003 à 19:57:18  profilanswer
 

benou a écrit :


[:totoz]
 
PS : pas de majuscule dans les noms package !! :o


 
Ok message reçu ;)

n°499962
benou
Posté le 27-08-2003 à 20:02:07  profilanswer
 

samuelp a écrit :


Ok message reçu ;)


le totoz c'était pas pour les majuscules ...
 
comment ca se fait que la racine de tes package est dans le rep lib ??? [:w3c compliant]


---------------
ma vie, mon oeuvre - HomePlayer
n°499965
samuelp
Posté le 27-08-2003 à 20:06:27  profilanswer
 

benou a écrit :


le totoz c'était pas pour les majuscules ...
 
comment ca se fait que la racine de tes package est dans le rep lib ??? [:w3c compliant]


Je tiens a preciser que c'est une ebauche de conception. J'aime bien savoir comment ça marche avant de concevoir (UML powa) puis programmer.
Je ne connais pas du tout le normalisme Java. Maintenant je sais qu'il ne faut pas mettre ça dans le lib mais plutot dans un repertoire appelé src (enfin je crois)

n°499978
benou
Posté le 27-08-2003 à 20:26:10  profilanswer
 

logiquement un projet java t'as au moins 3 rep :
- src : racine des packages dans lequels y a les sources
- classes : répertoire de compilation
- lib : dans lequels y a les jar à ajouter au classpath


---------------
ma vie, mon oeuvre - HomePlayer
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Précédente

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Java/XML : Le Parser de Sun ?

 

Sujets relatifs
Interet de JAVA pour le web comparé au PHP ou a l'ASP[Java] Conversion Jpg, Gif, Bmp
[JAVA] JtabbedPane et java2DLes spécifications JAVA en francais, ca existe ?
[repondu] Ecrire un XML en Java[Java] Properties et Applet
Lancer une appli externe dans un prog Javajava est -il valable si on utilise pas sa portabilité ??
livre sur JAVA 
Plus de sujets relatifs à : Java/XML : Le Parser de Sun ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR