我的xml就像<value>value1</value>
我想使用commons-digester解析它并希望将“value1”作为String对象
答案 0 :(得分:1)
与Lukasz一起回答,如果您不想创建另一个对象来保存该值,那么您只需将StringBuilder
推入堆栈,然后使用{{1}调用append
}。为清楚起见,我在这里复制了代码:
addCallMethod
答案 1 :(得分:0)
我认为不可能将“value1”直接加载到String
实例(addObjectCreate
)中,因为String是不可变的。而不是这个,我强迫沼气池调用方法。简短样本:
import java.io.File;
import org.apache.commons.digester.Digester;
public class Tester {
public static void main(String[] args) throws Exception {
Tester t = new Tester();
t.go();
}
private String read;
void go() throws Exception {
Digester digester = new Digester();
digester.push(this);
digester.addCallMethod("value", "readString", 1);
digester.addCallParam("value", 0);
digester.parse(new File("tester.xml"));
System.out.println("string: " + read );
}
public void readString(String a) {
this.read = a;
}
}
<强> tester.xml 强>:
<?xml version="1.0" encoding="UTF-8"?>
<value>value1</value>