Java et Api SAX

nsouad Messages postés 3 Date d'inscription samedi 23 mai 2009 Statut Membre Dernière intervention 25 août 2009 - 31 juil. 2009 à 23:50
kirua12 Messages postés 1155 Date d'inscription samedi 17 janvier 2004 Statut Membre Dernière intervention 29 avril 2011 - 3 août 2009 à 09:38
Bonjour,
j'ai fait un programme qui fait l'extraction d'éléments du fichier Example1.xml et le voici:
<sequence> 
<name>EchoSequence</name>
<receive>  <name>EchoReceive </name>
call 


 tns :echoPT


<operation> echo</operation> 
<variable> Request</variable>
</receive>
<reply> 
<name>echoReply </name>
caller 


tns :echoPT


<operation> echo</operation> 
<variable> Request</variable>
</reply>
</sequence>  

et voici le programme java qui fait l'extraction:
import javax.xml.parsers.*;
import org.xml.sax.helpers.DefaultHandler; 

import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory; 
import javax.xml.parsers.ParserConfigurationException; 
import org.xml.sax.*;
import org.xml.sax.helpers.*;
import java.io.*;
public class ExtractionSequence extends DefaultHandler{

/**
 * @param args
 */
public static void main(String[] args) {
// TODO Auto-generated method stub
DefaultHandler handler = new ExtractionSequence ();
SAXParserFactory factory = SAXParserFactory.newInstance(); 
        try { 
            SAXParser saxParser = factory.newSAXParser(); 
            saxParser.parse("Example1.xml",handler ); 
        } catch (Throwable t) { 
            //Si on a une erreur pendant l'analyse 
            t.printStackTrace (); 
            System.exit (1); 
        } 
        System.exit (0); 
    }
public void error(SAXParseException e) throws SAXParseException{ 
    throw e; 
} 

public void startDocument () throws SAXException { 
    System.out.println("début du document"); 
} 

public void endDocument () throws SAXException { 
    System.out.println("fin du document"); 

}

boolean sequence;
 boolean receive;
 boolean reply;
 boolean partenerLink;
 boolean operation;
 public void startElement(String uri, String localName, 
             
 String element_name,Attributes attributes)throws SAXException{
 if ( element_name.equals("sequence")|element_name.equals("receive")|element_name.equals("reply"))
 {
    		 System.out.println("Ouverture de la balise: " + element_name ) ;}
    			  
    			 
    		 else
    			 System.out.println(" "); 
    		 	     					     

 if (element_name.equals("partenerLink")){
 partenerLink= true;
 }
 if (element_name.equals("operation")){
 operation= true;
 }
}
 public void endElement(String uri, String localName, 
             
 String element_name,Attributes attributes)throws SAXException{
 if ( element_name.equals("sequence")|element_name.equals("receive")|element_name.equals("reply"))
 {
    		 System.out.println("Fermeture de la balise: " + element_name ) ;}
    			  
    			 
    		 else
    			 System.out.println(" ");}
 
 public void characters(char[] ch, int start, int len) throws SAXException{
 String str = new String (ch, start, len);


       if (partenerLink){
     	 System.out.println("Attributs de la balise:");
            System.out.println("partenerLink " +str);
            partenerLink= false;
        }
     
      if (operation){
     	System.out.println("Attributs de la balise:");
            System.out.println("operation " +str);
            operation= false;
        }
 



 }

}


et voici le résultat affiché
Ouverture de la balise: sequence

Ouverture de la balise: receive


Attributs de la balise:
partenerLink call


Attributs de la balise:
operation echo

Ouverture de la balise: reply


Attributs de la balise:
partenerLink caller


Attributs de la balise:
operation echo

fin du document
Mon problème et que le programme ne m'affiche pas dans le résultat la partie qui me fait la fermeture de balises
Sil vous plait aider moi a corriger mon programme le vous remercie d'avance

1 réponse

kirua12 Messages postés 1155 Date d'inscription samedi 17 janvier 2004 Statut Membre Dernière intervention 29 avril 2011 7
3 août 2009 à 09:38
Salut,

c'est normal, la signature de ta méthode endElement n'est pas la bonne. Regarde la javadoc
0
Rejoignez-nous
A voir également