Questions techniques et Forum

Liens entre ajout d'infos via interface et CreateXML (DOM) , et récupération via LectureXML

Liens entre ajout d'infos via interface et CreateXML (DOM) , et récupération via LectureXML

par Utilisateur supprimé,
Nombre de réponses : 1

Bonsoir, 
Nous ne comprenons pas comment nous sommes censés faire le lien entre les données, ajoutées aux différentes listes des classes de notre code (listes d'actes, de patients, de médecins, ect) et la classe main CreateXML (DOM) qui génère un documentXML avec nos données. 
Nous codons actuellement les boutons des interfaces qui instancieront les données (créées), mais nous avons besoin d'aide pour sauvegarder ces données instanciées dans notre document XML via CreateXML.

De plus, notre classe qui est censée prendre nos données du XML (grâce à des parsers et XMLStreamReader) ne nous retourne absolument rien, et je ne vois pas comment vérifier que cette classe fasse son travail ou pas. Les parsers ne retournent pas d'erreur, mais n'affichent pas les données qu'il y a dans le XML.

Si vous aviez quelques pistes pour nous aider ... On peut joindre par mail nos différentes classes pour que vous y jetiez un coup d'oeil. 
Bonne soirée.


En réponse à Utilisateur supprimé

Re: Liens entre ajout d'infos via interface et CreateXML (DOM) , et récupération via LectureXML

par Utilisateur supprimé,

Bonjour,


Le document XML doit être crée lors le l'appuie sur un bouton "sauvagarder" par exemple. 

Voici un petit exemple qui utilise XMLStreamWriter et qui est un peu plus simple à utiliser que les classes DOM.

XMLOutputFactory factory = XMLOutputFactory.newInstance();
 try {
     XMLStreamWriter writer = factory.createXMLStreamWriter(new FileWriter("dossier.xml"));

     writer.writeStartDocument();
     writer.writeStartElement("patients");
     writer.writeStartElement("patient");  
writer.writeStartElement("nom");
writer.writeCharacters("Asimov");
writer.writeEndElement();
writer.writeEndElement();
writer.writeEndElement();
writer.writeEndDocument();
writer.flush();
writer.close();
} catch (XMLStreamException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }

Ce petit code va écrire le fichier xml suivant :
<?xml version='1.0' encoding='utf-8'?>
<patients>
<patient>
<nom>Asimov</nom>
</patients>
</patients>

Vous devez donc parcourir tout votre dossier médical (représenté par la classe DossierMedical) et écrire en conséquence dans le fichier XML en utilisant les fonctions d'écritire de la classe XMLStreamWriter.

Mathieu BAILET