2012-08-13 4 views
0

J'essaie de faire un exemple de codeComment lire un document XML avec JiBX?

public class xml_class { 
    /** 
    * Unmarshal the sample document from a file, compute and set order total, then 
    * marshal it back out to another file. 
    * 
    * @param args 
    */ 
    public static void main(String[] args) { 
     try { 

      // unmarshal customer information from file 
      IBindingFactory bfact = BindingDirectory.getFactory(test.Order.class); 
      IUnmarshallingContext uctx = bfact.createUnmarshallingContext(); 
      FileInputStream in = new FileInputStream("D:/liferay-develop/data1.xml"); 
      Order order = (Order)uctx.unmarshalDocument(in, null); 

      // compute the total amount of the order 
      float total = 0.0f; 
      for (Iterator<Item> iter = order.getItems().iterator(); iter.hasNext();) { 
       Item item = iter.next(); 
       total += item.getPrice() * item.getQuantity(); 
      } 
      order.setTotal(new Float(total)); 

      // marshal object back out to file (with nice indentation, as UTF-8) 
      IMarshallingContext mctx = bfact.createMarshallingContext(); 
      mctx.setIndent(2); 
      FileOutputStream out = new FileOutputStream("D:/liferay-develop/out.xml"); 
      mctx.setOutput(out, null); 
      mctx.marshalDocument(order); 
      System.out.println("Processed order with " + order.getItems().size() + 
       " items and total value " + total); 
     } catch (FileNotFoundException e) { 
      e.printStackTrace(); 
      System.exit(1); 
     } catch (JiBXException e) { 
      e.printStackTrace(); 
      System.exit(1); 
     } 
    } 
} 

Et obtenir une erreur:

Unable to access binding information for class test.Order 
Make sure the binding has been compiled 
java.lang.NoSuchFieldException: JiBX_bindingList 
at java.lang.Class.getDeclaredField(Unknown Source) 
at org.jibx.runtime.BindingDirectory.getBindingList(BindingDirectory.java:68) 
at org.jibx.runtime.BindingDirectory.getFactory(BindingDirectory.java:211) 
at test.xml_class.main(xml_class.java:31) 

Qu'est-ce que lie? Et comment l'utiliser?

+0

La liaison définit la manière dont votre structure XML correspond à votre objet Java. Je pense que [le tutoriel de liaison de JiBX] (http://jibx.sourceforge.net/binding/tutorial/binding-tutorial.html) est un bon point de départ. –

+0

Im les regarder mais, mon anglais terrible et son dur pour moi lire tant de texte. J'essaie le plugin Eclipse JiBX. Mais rien n'est changé. –

Répondre