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

  FORUM HardWare.fr
  Programmation
  Java

  JAVA XML DOM Xerces

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

JAVA XML DOM Xerces

n°128434
titou078
Posté le 19-04-2002 à 11:38:51  profilanswer
 

Bon voila, je dois parser et generer des documents xml, mais je n ai  
jamais fait ca, quelqu un pourrait soit m expliquer soit me filer un  
site ou je pourrais trouver des expliquations car ca fait 2 jours que  
je galere et j arrive a rien  
Merci d avance

mood
Publicité
Posté le 19-04-2002 à 11:38:51  profilanswer
 

n°128439
goueg
De passage
Posté le 19-04-2002 à 11:50:53  profilanswer
 

titou078 a écrit a écrit :

Bon voila, je dois parser et generer des documents xml, mais je n ai  
jamais fait ca, quelqu un pourrait soit m expliquer soit me filer un  
site ou je pourrais trouver des expliquations car ca fait 2 jours que  
je galere et j arrive a rien  
Merci d avance  




 
pourkoi ce sujet alors... XML suffisait? XSL ossi si tu veux, mais po java...
regarde le post du gars ki dit kil debute en XML, ya des liens.

n°128440
gfive
Posté le 19-04-2002 à 11:51:26  profilanswer
 

Pour parser, y'a les nouvelles classes des packages javax.xml dans le jdk 1.4 J'ai commencé hier, ça va vraiment tout seul : en gros, tu crées un parser  
 
SAXParserFactory factory = SAXParserFactory.newInstance();
  factory.setValidating(true);
  try {
      SAXParser parser = factory.newSAXParser();
 
comme ça, par exemple...
 
Et pour parser, tu fais ça :  
 
 parser.parse(in, DefaultHandler dh)
 
Tu verras, il faut lire la javadoc du DefaultHandler : toutes ses méthodes ne font rien. Il te suffit de créer ta sous-classe de DefaultHandler, en réécrivant les méthodes qui t'intéressent (ex : startElement(....) est appellée par le parser quand il rencontre une balise ouvrante, etc....)
 
C un peu zarb au début, mais si le XML est bien foutu, y'a pas de problème...
 
Pour générer du xml....bah là, j'ai pas fait!

n°128441
goueg
De passage
Posté le 19-04-2002 à 11:51:50  profilanswer
 

aaah a moins que tu veuille le faire autrement qu'avec IE??

n°128451
goueg
De passage
Posté le 19-04-2002 à 12:00:11  profilanswer
 

moué j'avais du mal comprendre la question, desolai :hello:

n°128457
darklord
You're welcome
Posté le 19-04-2002 à 12:04:13  profilanswer
 

titou078 a écrit a écrit :

Bon voila, je dois parser et generer des documents xml, mais je n ai  
jamais fait ca, quelqu un pourrait soit m expliquer soit me filer un  
site ou je pourrais trouver des expliquations car ca fait 2 jours que  
je galere et j arrive a rien  
Merci d avance  




 
Tu as déjà fait quoi. Tu bloques où. Perso, je n'ai pas vraiment envie à répondre à ton poste car il est trop vague. Si tu nous disais, j'ai fait tels trucs mais ca marche pas ou ca ne donne pas ce que je veux ou je n'arrive pas à faire tel truc. La c'est plutot: "ouais XML machin là je galère ca marche pas".
 
Répondre à ta question prendrait trop de temps et probablement tu perds pas mal d'aide et étant moins précis.


---------------
Just because you feel good does not make you right
n°128458
titou078
Posté le 19-04-2002 à 12:04:31  profilanswer
 

le probleme gfive, c est que je suis un peu perdu avec toutes ces classes, je sais pas trop a quoi tout cela correspond(meme en lisant la javadoc), je sais juste qu'avec DOM on a une sorte d'arbre lorsque le document ets parsé.
et avec defaulthandler et la methode startElement, comment fait tu savoir de quel element il s'agit, en supposant qu'on est ca:
<TEXTE>Fais chier bordel</TEXTE>
Comment je fais pour recuperer la valeur?
Vois un document que j essai de parser(enfin je le simplifie car il fait 100Ko
<?xml version = '1.0'?>
<ROWSET>
   <document num="1">
      <MI_CONTROLEUR>380</MI_CONTROLEUR>
      <MI_NUMISSION>1884870</MI_NUMISSION>
      <MI_NUMEROANTENNE>C022001053040</MI_NUMEROANTENNE>
      <VI_NUMERO>1</VI_NUMERO>
      <MI_NUMNATIONALCC>200100256423</MI_NUMNATIONALCC>
      <MI_ADRESSE1>12 RUE CHARLES ROMME</MI_ADRESSE1>
      <MI_CODEPOSTAL>63400</MI_CODEPOSTAL>
      <MI_VILLE>CHAMALIERES</MI_VILLE>
      <MI_LOGEMENT>AA</MI_LOGEMENT>
      <MI_ENERGIE>GN</MI_ENERGIE>
      <MI_TYPEINSTAL>IN</MI_TYPEINSTAL>
      <AT_LIBELLE>LAVEST DANIEL</AT_LIBELLE>
      <CL_AUXILIAIRE>186712</CL_AUXILIAIRE>
      <CL_LIBELLE>E2S</CL_LIBELLE>
      <CL_TELEPHONE>0472435297</CL_TELEPHONE>
      <CL_QUALIFICATION>NQ</CL_QUALIFICATION>
      <CL_LIBELLE>E2S</CL_LIBELLE>
      <CL_TELEPHONE>0472435297</CL_TELEPHONE>
   </document>
</ROWSET>
 
Et comment fait t on pour recuperer avec les attibuts?
Merci d avance

n°128459
darklord
You're welcome
Posté le 19-04-2002 à 12:05:06  profilanswer
 

bin voilà qd tu veux ;)
 
Je regarde deux secondes...


---------------
Just because you feel good does not make you right
n°128463
darklord
You're welcome
Posté le 19-04-2002 à 12:09:28  profilanswer
 

Quel parseur tu veux utilise déjà. Si tu veux utiliser DOM, moi perso j'utilise JDOM qui est très bien et très facile (www.jdom.org).
 
Ce que tu dois savoir c'est qu'il ne faut pas gérer des trop gros documents avec DOM.
 
Si tu choisis SAX bin en fait tu lis ton document de A à Z et il appelle des méthodes lorsqu'il recontres des tags bien précis (début d'élement et fin d'élement par exemple). C'est à toi dans ces méthodes de définir ce que tu veux faire (copier le contenu dans tel variable etc.)
 
A nouveau si tes fichiers sont relativement petits JDOM rulezz.


---------------
Just because you feel good does not make you right
n°128465
gfive
Posté le 19-04-2002 à 12:11:16  profilanswer
 

Bon, alors, c assez simple :
 
public class MyHandler extends DefaultHandler {
 
private String tagName;
 
startElement(String uri,
                         String localName,
                         String qName,
                         Attributes attributes) {
 
//Lecture du tag texte :
 
if (qName.equals("TEXTE" )) {
    tagname = "TEXTE";    
}
 
...
}
 
 
characters(char[] ch,
                       int start,
                       int length) {
if (tagname.equals(TEXTE)) {
    String value = new String(ch, start, length);
    System.out.println("Le tag texte contient la chaîne "+value);
}
}
 
 
...
 
bon, voilà....Tu remarqueras que ce parser est plus adapté à du XML qui a ses données en tant qu'attribut des tags, mais bon, on s'en sort quand même..

mood
Publicité
Posté le 19-04-2002 à 12:11:16  profilanswer
 

n°128466
gfive
Posté le 19-04-2002 à 12:12:20  profilanswer
 

DarkLord a écrit a écrit :

 
A nouveau si tes fichiers sont relativement petits JDOM rulezz.  




 
Ah, je vais aller voir, moi..
 
Mais bon, j'ai commencé hier, et mon xml fait 2Mo....j'ai bien fait de prendre SAX, alors?? :D

n°128469
titou078
Posté le 19-04-2002 à 12:13:04  profilanswer
 

et en utilisant DOM, sais tu comment on fait?

n°128471
titou078
Posté le 19-04-2002 à 12:15:13  profilanswer
 

jusqu a maintenant j essaye de tout faire avec apache, tomcat, xerces, sais tu comment on fait avec DOM?

n°128476
darklord
You're welcome
Posté le 19-04-2002 à 12:21:23  profilanswer
 

titou078 a écrit a écrit :

jusqu a maintenant j essaye de tout faire avec apache, tomcat, xerces, sais tu comment on fait avec DOM?  




 
apache, tomcat ???
 
je sais comment on fait avec DOM oui. Va déjà voir www.jdom.org c'est on ne peut plus clair (regardes nottament DOMBUilder et SAXBuilder qui te permette de construre une instance de Document à partir d'un stream genre fichier)


---------------
Just because you feel good does not make you right
n°128479
gfive
Posté le 19-04-2002 à 12:25:51  profilanswer
 

Pour un fichier dans le genre de ce que tu as montré, avec SAX, tout mettre dans une hashtable est enfantin....Mais bon..

n°128480
titou078
Posté le 19-04-2002 à 12:25:57  profilanswer
 

DarkLord a écrit a écrit :

 
 
apache, tomcat ???
 
je sais comment on fait avec DOM oui. Va déjà voir www.jdom.org c'est on ne peut plus clair (regardes nottament DOMBUilder et SAXBuilder qui te permette de construre une instance de Document à partir d'un stream genre fichier)  




Apache et tomcat car on utilise le HTTP,
J ai essayer avec DOMBuilder, mais je n'arrive pas a generer mon document
Voici mon code
try
        {
            docBuildFact=DocumentBuilderFactory.newInstance();
            docBuildFact.setValidating(true);
            docBuildFact.setNamespaceAware(true);
        }
        catch(FactoryConfigurationError eF)
        {
            System.out.println(eF.getMessage());
        }
         
        try
        {
            docBuild=docBuildFact.newDocumentBuilder();
            System.out.println(docBuild);
        }
        catch(ParserConfigurationException ePC)
        {
            System.out.println("pb de docBuilder" );
            System.out.println(ePC.getMessage());
        }
        try
        {
            doc=(DocumentImpl)docBuild.parse(new InputSource(new FileInputStream(new File("c:"+File.separator+"tutu.xml" ))));
            docBuild.setErrorHandler(err.getErrorHandler());
            System.out.println(doc);
        }
        catch(SAXException eS)


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

  JAVA XML DOM Xerces

 

Sujets relatifs
[JAVA] modifier la valeur d'une donnée dans une hashtablel'equivalent de la fonction "eval" du javascript existe t'il en java ?
[JAVA] Creation de dossier et Creation de fichier[JAVA] Difference main(String args[ ]) et main(String [ ]args)
[JAVA] Recherche de la position d'une sous-chaine dans un chaine[java] ca existe les surcharges d'opérateurs ??
Débuter en XML ?Java et interface graphique
[ java / regexp ] parser un fichier texte.[JAVA] [FLASH] du flash avec java?
Plus de sujets relatifs à : JAVA XML DOM Xerces


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