用蒸煮器解析

时间:2011-03-28 22:12:54

标签: java xml apache-commons-digester

我的xml就像<value>value1</value>我想使用commons-digester解析它并希望将“value1”作为String对象

2 个答案:

答案 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>