XMLお試し
・Commons Betwixt
http://commons.apache.org/betwixt/
http://commons.apache.org/betwixt/guide/binding.html
http://journal.mycom.co.jp/news/2005/08/01/008.html
http://kamakura.cool.ne.jp/oppama/jaco/commons-betwixt.html
package sample; import java.net.URL; import org.apache.commons.betwixt.BindingConfiguration; import org.apache.commons.betwixt.io.BeanReader; import org.apache.commons.betwixt.io.BeanWriter; public class XMLParser { public static final void main(String args[]) throws Exception { System.out.println("111"); String path = "file:c:\\work\\p.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)); // コンソールに出力して内容を確認 BeanWriter writer2 = new BeanWriter(); writer2 .writeXmlDeclaration("<?xml version=\"1.0\" encoding=\"Shift_Jis\"?>"); writer2.setBindingConfiguration(config); writer2.write(map); writer2.close(); } }
package sample; import java.util.List; import java.util.Vector; public class Root { public int getAge() { return age; } public void setAge(int value) { this.age = value; } private String name; private int age = 25; List friendList = new Vector(); // frendList = new Vector(); 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; } public String getName() { return name; } public void setName(String name) { this.name = name; } } 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; } }
<?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>