java配列add,はじめてのJakarta Commons Betwixt

BetwixtはJavaBeansを簡単にXMLに書き出すためのAPIです。また読み込むことも可能です。(厳密にはCommons Digesterを使うのだけど)

Primitive(intとかString)だけなら、とにかく非常に簡単に始められます。

XMLスキーマやDTDがないXMLを読み書きするならBetwixtがいい選択になると思います。

ここでは ver0.6を元に説明します。

【公式サイト】

準備

以下のパッケージ(API)をダウンロードしてjarファイルをパスに追加する必要があります。

ダウンロードはから行えます。

バージョンはその時点で一番近いものを、ファイル形式はzipでもtar.gzでも同じです。

■Commons BetWixt 0.6

commons-betwixt-0.6.jar

■BeanUtils 1.7.0

commons-beanutils.jar

■Commons Collections 2.1.1

commons-collections-2.1.1.jar

■Commons Digester 1.6

commons-digester.jar

■Commons Logging 1.0.4

commons-logging.jar

uid-9661459-id-166306.htmlサンプル

実行すると以下のようにファイル c:\tmp\p.xml と画面に以下のように出力されます。

Tom

Jim

Java Code

uid-9661459-id-166306.html

配列を扱うときは、addとgetを用いますが、getの場合は、後にsをつけるとか、Listをつけるなどした方がすっきりします。

public void addFrend(Frend num);

public Frend[] getFrends();public Frend[] getFrendList();

■test.Person.java/*

* Created on 2004/10/05

* Author aki@

* License Apache2.0 or Common Public License

*/

package test;

import java.io.File;

import java.io.FileWriter;

import java.util.List;

import java.util.Vector;

import org.apache.commons.betwixt.BindingConfiguration;

import org.apache.commons.betwixt.io.BeanReader;

import org.apache.commons.betwixt.io.BeanWriter;

public class Person {

public static final void main(String args[]) throws Exception{

String path="c:\\tmp\\p.xml";

//Configを作成 (idを出力しない) 省いてもいい。

BindingConfiguration config=new BindingConfiguration();

config.setMapIDs(false);

BeanWriter writer = new BeanWriter(new FileWriter(path));

writer.setBindingConfiguration(config);

writer.writeXmlDeclaration("");

//JavaBeanの値を設定

Person person=new Person();

person.setName("Huck");

person.addFrend(new Frend("Tom"));

person.addFrend(new Frend("Jim"));

//書き出し

writer.write(person);

writer.close();

//XMLからJavaBeanを作成

BeanReader reader=new BeanReader();

reader.registerBeanClass(Person.class);

Person map=(Person)reader.parse(new File(path));

//コンソールに出力して内容を確認

BeanWriter writer2 = new BeanWriter();

writer2.writeXmlDeclaration("");

writer2.setBindingConfiguration(config);

writer2.write(map);

writer2.close();

}

public Person(){

frendList=new Vector();

}

public int getAge() {

return age;

}

public void setAge(int value) {

this.age = value;

}

private String name;

private int age=25;

List frendList;

public void addFrend(Frend num){

frendList.add(num);

}

public Frend[] 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;

}

}

■test.Friend.javapackage test;

/*

* Created on 2004/10/05

* Author aki@

* License Apache2.0 or Common Public License

*/

/**

*

*

*/

public class Friend {

String name;

public Friend(){

}

public Friend(String v){

this.name=v;

}

public String getName() {

return name;

}

public void setName(String v) {

this.name = v;

}

}

FAQXML宣言はどうやって書くのかwriter.writeXmlDeclaration("");

出力時のid属性はどうやって消すの?BindingConfiguration config=new BindingConfiguration();

config.setMapIDs(false);

BeanWriter writer = new BeanWriter(fw);

writer.setBindingConfiguration(config);

関連

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值