betwixtのsample
betwixtって意外とサンプルが少ない。
betwixtでxml→javabeansの変換
まずは、読み込むxml(sample.xml)
<?xml version="1.0" encoding="Shift_Jis"?> <Person> <age>25</age> <friends> <friend> <name>Tom</name> <age>3</age> </friend> <friend> <name>Jim</name> <age>3</age> </friend> </friends> <name>Huck</name> </Person>
次はjavabeans(Root.java、Friend.java)
package sample; import java.util.List; import java.util.Vector; public class Root { // private String name; private int age; private List friendList = new Vector(); // public String getName() { // return name; // } // // public void setName(String name) { // this.name = name; // } public int getAge() { return age; } public void setAge(int value) { this.age = value; } public void addFriend(Friend num) { friendList.add(num); } public Friend[] getFriends() { Friend number[] = new Friend[friendList.size()]; for (int i = 0; i < number.length; i++) { number[i] = ((Friend) friendList.get(i)); } return number; } } package sample; public class Friend { String name; String age; public String getAge() { return age; } public void setAge(String age) { this.age = age; } public Friend() { } public Friend(String v) { this.name = v; } public String getName() { return name; } public void setName(String v) { this.name = v; } }
最後にパーサー(XMLParser.java)
package sample; import java.io.File; import org.apache.commons.betwixt.BindingConfiguration; import org.apache.commons.betwixt.io.BeanReader; public class XMLParser { public static final void main(String args[]) throws Exception { System.out.println("111"); // String path = "file:c:\\work\\p.xml"; String path = "C:/java//sample/sample.xml"; // Configを作成 (idを出力しない) 省いてもいい。 BindingConfiguration config = new BindingConfiguration(); config.setMapIDs(false); // XMLからJavaBeanを作成 BeanReader reader = new BeanReader(); reader.registerBeanClass("Person", Root.class); // Root map = (Root) reader.parse(new URL(path)); Root map = (Root) reader.parse(new File(path)); System.out.println(map.getAge()); for (Friend friend : map.getFriends()) { System.out.println(friend.getAge()); } // // コンソールに出力して内容を確認 // BeanWriter writer2 = new BeanWriter(); // writer2 // .writeXmlDeclaration("<?xml version=\"1.0\" encoding=\"Shift_Jis\"?>"); // writer2.setBindingConfiguration(config); // writer2.write(map); // writer2.close(); } }