java - Read a XML file with XStream -
java - Read a XML file with XStream -
i have xml:
<testsuite name = "testsuite1" time = "19.0" tests = "2" skipped = "0" errors = "1" failures = "1"> <testcase name = "test1" time = "10.0"> <failure type = "testcase" message = "error"></failure> </testcase> <testcase name = "test2" time = "9.0"> <failure type = "testcase" message = "error"></failure> </testcase> i define 3 clases:
testsuitebean.class
public class testsuitebean { private list<testcasebean> testcases; @xstreamasattribute private string name; @xstreamasattribute private long time; @xstreamasattribute private int failures; @xstreamasattribute private int tests; @xstreamasattribute private int skipped; @xstreamasattribute private int errors; public string getname() { homecoming name; } public void setname(string name) { this.name = name; } public long gettime() { homecoming time; } public void settime(long time) { this.time = time; } public int getfailures() { homecoming failures; } public void setfailures(int failures) { this.failures = failures; } public int gettests() { homecoming tests; } public void settests(int tests) { this.tests = tests; } public int getskipped() { homecoming skipped; } public void setskipped(int skipped) { this.skipped = skipped; } public int geterrors() { homecoming errors; } public void seterrors(int errors) { this.errors = errors; } public list<testcasebean> gettestcases() { if (testcases == null) { testcases = new arraylist<testcasebean>(); } homecoming testcases; } public void settestcases(list<testcasebean> testcases) { this.testcases = testcases; } }
testcasebean.class
public class testcasebean { private failurebean failure; @xstreamasattribute private string name; @xstreamasattribute private long time; public string getname() { homecoming name; } public void setname(string name) { this.name = name; } public long gettime() { homecoming time; } public void settime(long time) { this.time = time; } public failurebean getfailure() { homecoming failure; } public void setfailure(failurebean failure) { this.failure = failure; } }
failurebean.class
public class failurebean { private string type; private string message; public string gettype() { homecoming type; } public void settype(string type) { this.type = type; } public string getmessage() { homecoming message; } public void setmessage(string message) { this.message = message; } }
and main.class
final xstream xstream = new xstream(new staxdriver()); xstream.setmode(xstream.id_references); xstream.alias("testsuite", testsuitebean.class); xstream.alias("testcase", testcasebean.class); xstream.alias("failure", failurebean.class); fileinputstream file; seek { file = new fileinputstream("config1.xml"); testsuitebean xml = (testsuitebean) xstream.fromxml(file); and next error:
exception in thread "main" com.thoughtworks.xstream.converters.conversionexception: element testcase of type el2.test.zephyr.read.testcasebean not defined field in type el2.test.zephyr.read.testsuitebean ---- debugging info ---- class : el2.test.zephyr.read.testsuitebean required-type : el2.test.zephyr.read.testsuitebean converter-type : com.thoughtworks.xstream.converters.reflection.reflectionconverter line number : 4
version : null
testcase appears multiple times, guess need replace:
xstream.alias("testsuite", testsuitebean.class)
with
xstream.addimplicitcollection(testsuitebean.class, "testcases", "testcase", testcasebean.class)
java xml xstream
Comments
Post a Comment