Java et XML

Java et XML - Java - Programmation

Marsh Posté le 14-03-2003 à 12:18:15    

Je dois créer une application en Java me permettant de créer et de lire des factures en XML. Le problème est que je connais pas tellement comment faire le lien entre XML et Java. J?ai récupéré des API (exerces et xalan)
J?aimerai savoir si quelqu?un aurai un exemple à me faire parvenir ou des conseils à me donner ?
Merci d?avance.

Reply

Marsh Posté le 14-03-2003 à 12:18:15   

Reply

Marsh Posté le 14-03-2003 à 12:22:25    

fabland a écrit :


J?aimerai savoir si quelqu?un aurai un exemple à me faire parvenir ou des conseils à me donner ?
Merci d?avance.


Lis la javadoc [:spamafote] C'est ce que j'ai fait pour Xerces et ça a très bien fonctionné.


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 14-03-2003 à 14:58:15    

Taiche a écrit :


Lis la javadoc [:spamafote] C'est ce que j'ai fait pour Xerces et ça a très bien fonctionné.


 
regarde les examples livrés avec xerces, méthodes SAX et DOM... Tout y est (enfin la philosophie)

Reply

Marsh Posté le 14-03-2003 à 18:30:13    

Tiens, c'est cadeau :  
 
C'est une classe qui utilise un implémentation de parser pour créer des documents et les convertir en string. Ca vaut ce que ça vaut, mais si quelqu'un envoie des améliorations, je suis preneur  :hello:
 
Pour s'en servir, une fois le document crée, tu peux utiliser les commandes sur getRoot ou un autre node que tu auras crée
 
Les plus importantes :  
node.getOwnerDocument.createElement("..." )
node.appendChild(otherNode)
node.setAttribute("name", "value" )
 
Mais ça et le reste, c'est dans la doc...
 

Code :
  1. import org.w3c.dom.Element;
  2. import org.w3c.dom.*;
  3. import org.w3c.dom.Node;
  4. import javax.xml.parsers.DocumentBuilderFactory;
  5. import javax.xml.parsers.DocumentBuilder;
  6. import javax.xml.parsers.ParserConfigurationException;
  7. import javax.xml.parsers.FactoryConfigurationError;
  8. import java.io.IOException;
  9. import org.xml.sax.SAXException;
  10. public class XmlDocument {
  11.     private org.apache.crimson.tree.XmlDocument doc;
  12.     /**
  13.      * Creates a DOM document from an input string
  14.      * @param content a String that will be parsed to create the document
  15.      */
  16.     public XmlDocument(String content) {
  17.         try {
  18.             DocumentBuilderFactory fact = DocumentBuilderFactory.newInstance();
  19.             DocumentBuilder builder = fact.newDocumentBuilder();
  20.             java.io.ByteArrayInputStream s = new java.io.ByteArrayInputStream(content.getBytes());
  21.             doc = (org.apache.crimson.tree.XmlDocument) builder.parse(s);
  22.         }
  23.         catch (ParserConfigurationException ex) {
  24.             ex.printStackTrace();
  25.         } catch (FactoryConfigurationError ex) {
  26.             ex.printStackTrace();
  27.         } catch (IOException ex) {
  28.             ex.printStackTrace();
  29.         } catch (SAXException ex) {
  30.             ex.printStackTrace();
  31.         }
  32.     }
  33.     /**
  34.      * Creates an empty document
  35.      */
  36.     public XmlDocument() {
  37.         try {
  38.             DocumentBuilderFactory fact = DocumentBuilderFactory.newInstance();
  39.             DocumentBuilder builder = fact.newDocumentBuilder();
  40.             doc = (org.apache.crimson.tree.XmlDocument) builder.newDocument();
  41.         } catch (Exception ex) {
  42.             ex.printStackTrace();
  43.         }
  44.     }
  45.     /**
  46.      * Creates a root node for the document.
  47.      * All further operations on the document (adding, reading, ...) can be done on the root
  48.      * @param name
  49.      */
  50.     public void createRoot(String name)
  51.     {
  52.         Element e = doc.createElement(name);
  53.         doc.appendChild(e);
  54.     }
  55.     /**
  56.      * Writes the document to a string
  57.      * @return
  58.      */
  59.     public String toString() {
  60.         try {
  61.             java.io.StringWriter writer = new java.io.StringWriter();
  62.             doc.write(writer);
  63.             String result = writer.toString();
  64.             return result;
  65.         } catch (Exception ex) {
  66.             ex.printStackTrace();
  67.             return "<exception><description>" + ex.toString() + "</description><message>" + ex.getMessage() +
  68.                 "</message></exception>";
  69.         }
  70.     }
  71.     public Element getRootElement() {
  72.         if (doc != null) {
  73.             return doc.getDocumentElement();
  74.         }
  75.         else {
  76.             return null;
  77.         }
  78.     }
  79. }


 

Reply

Marsh Posté le 15-03-2003 à 16:29:10    

si ca te barbe tant que ca d'apprendre une API de gestion de XML, peut etre que Castor pourrait t'etre utile

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed