XML Write & Read

Bryce_74 Messages postés 8 Date d'inscription mardi 27 janvier 2004 Statut Membre Dernière intervention 21 mai 2005 - 15 mai 2005 à 23:01
Bryce_74 Messages postés 8 Date d'inscription mardi 27 janvier 2004 Statut Membre Dernière intervention 21 mai 2005 - 16 mai 2005 à 17:47
Bonsoir, je voudrais développer une application Java permettant de se
connecter à plusieurs base de données. Je m'occupe de développé une
partie de ce projet et j'aurais aimé avoir des conseils car je dois
sauvegardé les paramètres de connexion de l'application dans un fichier
XML. Je vais utiliser DOM comme parser XML mais je ne sais pas du tout
comment organiser mon code pour intégrer DOM. Je ne trouve pas de code
source qui pourrais m'aider...Y a t-il des packets à importer ou des
plugins à installer? Je développe sous Eclipse.

Merci de votre aide!

6 réponses

cs_neodante Messages postés 2835 Date d'inscription lundi 11 août 2003 Statut Modérateur Dernière intervention 16 décembre 2006 11
16 mai 2005 à 13:33
Salut



Rien à installer en plus, c'est de série ! lol Dés que j'ai fini mon
projet (surement ce soir) je t'envois un code brut dans lequel il y
aura exactement ce que tu cherches, j'essayerais de trier mais à toi de
te déboruiller avec ! Ca te va ???



@+
0
Bryce_74 Messages postés 8 Date d'inscription mardi 27 janvier 2004 Statut Membre Dernière intervention 21 mai 2005
16 mai 2005 à 16:12
Merci neodante, j'ai réussi hier à parser un document XML mais je veux bien voir comment tu fais ;)



Voici ce que j'ai utilisé:



// Parse un document XML en Java avec l'API SAX

// on importe les API necessaires

// pour l'analyse du XML

import org.xml.sax.*;

import org.xml.sax.helpers.DefaultHandler;

import javax.xml.parsers.SAXParserFactory;

import javax.xml.parsers.SAXParser;

// pour l'accès aux fichiers

import java.io.*;



public class AnalyseSAX extends DefaultHandler {

// Méthode principale

public static void main(String args[]) throws IOException {

// Si l'utilisateur a oublié de passer

// le nom du fichier XML en paramètre => erreur

if (args.length != 1) {

System.err.println("Erreur, il manque un argument");

System.exit(1);

}

// on lance l'analyseur avec le fichier XML en parametre

DefaultHandler handler = new AnalyseSAX();

SAXParserFactory factory;

factory = SAXParserFactory.newInstance();

try {

SAXParser saxParser = factory.newSAXParser();

saxParser.parse(new File(args[0]), handler);

} catch (Throwable t) {

// Si on a une erreur pendant l'analyse

t.printStackTrace();

System.exit(1);

}

System.exit(0);

} // fin du main



// Les méthodes qui suivent sont appelées

// automatiquement par l'analyseur

// lorsqu'un événement est détecté

// dans le fichier XML.

public void startElement(String namespaceURI, String sName, // simple name

String qName, // qualified name

Attributes attrs) throws SAXException {

String eName = sName; // element name



if (attrs != null) {



// Listage des attributs

if (attrs.getLength() != 0) {


System.out.println("listage des parametres pour la
balise " + eName + ":");

}

for (int i = 0; i < attrs.getLength(); i++) {

String aName = attrs.getLocalName(i);

// Récupération du nom de l'attribut

if ("".equals(aName)) {

aName = attrs.getQName(i);

}


System.out.println(" " + aName + "="" +
attrs.getValue(i) + """);

}

}

}



public void endElement(

String namespaceURI,

String simpleName,

String qualifiedName)

throws SAXException {



String nomElement = simpleName;



}



public void characters(char[] ch, int start, int end) throws SAXException {

String chaine = new String(ch, start, end);

chaine = chaine.trim();

if (!chaine.equals("")) {

System.out.println(chaine);

}

}

} // Fin de la classe
0
cs_neodante Messages postés 2835 Date d'inscription lundi 11 août 2003 Statut Modérateur Dernière intervention 16 décembre 2006 11
16 mai 2005 à 17:26
Salut



Euh mais là tu utilise SAX et non DOM ...

Pour parser avec DOM c'est pas beaucoup plus compliqué, d'ailleurs regarde ma dernière source sur ce sujet ...

Sinon voici un bot de code (attention ici ce n'est que de la lecture,
si tuveux créer un fichier XML alros dis le moi je te mettrais un petit
exemple !):



static final String JAXP_SCHEMA_LANGUAGE = "http://java.sun.com/xml/jaxp/properties/schemaLanguage";



static final String W3C_XML_SCHEMA = "http://www.w3.org/2001/XMLSchema";



static final String JAXP_SCHEMA_SOURCE = "http://java.sun.com/xml/jaxp/properties/schemaSource";



...

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();

dbf.setIgnoringComments(true);

dbf.setNamespaceAware(true);

dbf.setValidating(true);

dbf.setAttribute(JAXP_SCHEMA_LANGUAGE, W3C_XML_SCHEMA);

dbf.setAttribute(JAXP_SCHEMA_SOURCE, new File(xsdFile));

try {

// Parsage du fichier XML avec DOM

DocumentBuilder db = dbf.newDocumentBuilder();

db.setErrorHandler(new ErrorHandler() {

public void fatalError(SAXParseException e) {

...

}



public void error(SAXParseException e) {

...

}



public void warning(SAXParseException e) {

...

}

});

Document doc = db.parse(xmlRequest);



// Extraction des informations

NodeList prod = doc.getElementsByTagName("product");

NamedNodeMap attProduct = prod.item(0).getAttributes();

Product product = new Product(attProduct.getNamedItem("name")


.getNodeValue(),
attProduct.getNamedItem("version")

.getNodeValue());

...



Ici je suis sûr des données que je vais récupérer étant donné que le XML est valide ... sinon faudra gérer les erreurs !!!



@+
0
Bryce_74 Messages postés 8 Date d'inscription mardi 27 janvier 2004 Statut Membre Dernière intervention 21 mai 2005
16 mai 2005 à 17:35
Oui finalement j'ai utiliser SAX dans mon script car mon fichier XML n'est pas très complexe. Regarde:

//parameters.xml

<?xml version="1.0" encoding="ISO-8859-1"?>



0

<name>SQL_Connect</name>

<login>admin</login>

password


1

<name>Oracle_Connect</name>

<login>admin</login>

password






Oui je suis intéressé que tu me montres comment faire pour créer
automatiquement un fichier XML car la je l'ai fais manuellement
pour voir si j'arrivais au moins à le lire.

J'aimerais récupérer des paramètres de login/password des favoris
présent dans mon appli pour les sauvegardées (export/import au fait).
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_neodante Messages postés 2835 Date d'inscription lundi 11 août 2003 Statut Modérateur Dernière intervention 16 décembre 2006 11
16 mai 2005 à 17:44
Salut



Je voulais refaire une source masi quelqu'un a déjà un bout du code :

http://www.javafr.com/code.aspx?id=15615

Si tu comrpends je referais un code un de ces jours ...



@+
0
Bryce_74 Messages postés 8 Date d'inscription mardi 27 janvier 2004 Statut Membre Dernière intervention 21 mai 2005
16 mai 2005 à 17:47
MERCI!!Je vais regarder ce code!
0
Rejoignez-nous