2011-02-18 3 views
1

C'est ainsi que j'ai créé un fichier XML pour un ou plusieurs objets Java. J'ai utilisé "xjc" et un schéma XML valide, et j'ai récupéré des fichiers * .java "générés". Je les ai importés dans un paquet différent dans Eclipse. Je lis le fichier XML de 2 façons maintenant.XML analyse java confirmation

1) Chargement du fichier XML:

System.out.println("Using FILE approach:"); 
    File f = new File ("C:\\test_XML_files\\complex.apx"); 
    JAXBElement felement = (JAXBElement) u.unmarshal(f); 
    MyObject fmainMyObject = (MyObject) felement.getValue(); 

2) L'utilisation d'un buider DOM:

 System.out.println("Using DOM BUILDER Approach:"); 
     JAXBElement element = (JAXBElement) u.unmarshal(test());; 
     MyObject mainMyObject = (MyObject) element.getValue(); 

maintenant dans la méthode "test()" le code ci-dessous est inclus:

public static Node test(){ 

    Document document = parseXmlDom(); 
    return document.getFirstChild(); 
} 

private static Document parseXmlDom() { 

    Document document = null; 

    try { 

     // getting the default implementation of DOM builder 
     DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); 
     DocumentBuilder builder = factory.newDocumentBuilder(); 

     // parsing the XML file 
     document = builder.parse(new File("C:\\test_XML_files\\MyXML_FILE.apx")); 

    } catch (Exception e) { 
     // catching all exceptions 
     System.out.println(); 
     System.out.println(e.toString()); 
    } 
    return document; 
} 

est-ce la façon standard de faire XML à un objet Java? J'ai testé si je pouvais accéder à l'objet et tout fonctionne bien. (jusqu'à présent) Proposez-vous une approche différente? ou est-ce suffisant?

+1

Il existe de nombreux moyens d'accéder à XML. Comme pour JAXB, consultez http://download.oracle.com/javase/6/docs/api/javax/xml/bind/Unmarshaller.html - leurs exemples incluent vos deux approches et plus encore. –

+0

Recherchez-vous des objets DOM ou une liaison Java XML? – gigadot

+0

Découvrez cette excellente réponse par Voo: http://stackoverflow.com/questions/5059224/quelle-est-la-best-library-for-xml-parsing-in-java/5059411#5059411 –

Répondre

0

Je ne connais pas de "manière standard", mais l'une ou l'autre façon me semble correcte. La première façon semble plus simple (moins de code), c'est comme ça que je le ferais probablement, sauf s'il y avait d'autres facteurs/exigences. Je pense que la méthode unmarshal(File) a été implémentée pour faire à peu près ce que vous faites dans votre seconde approche.


Cependant, il est vraiment à vous (et vos collègues) pour porter des jugements sur ce qui est « suffisant » pour votre projet.

+0

thx gars pour votre aide – pantelis