如何使用XStream将XML解析为java对象

时间:2012-01-06 12:15:43

标签: java xstream

我有一些xml代码,我想将它解析为java对象,请帮助我。

   <Error>
    <number>1020</number>
    <Type>fatal</Type>
    <Text>Nagaraju</Text>
    <Text>Suresh</Text>
    <Text>Sound</Text>
    <Text>Rajesh</Text>
   </Error>

java对象是

   Class Error{
      int number;
      String type;
      List<String>texts=new ArrayList<String>();
   }

2 个答案:

答案 0 :(得分:5)

我会亲自手动映射,或者也许使用JAX-B,但如果你真的想使用XStream:

  1. 您需要将类Error映射到元素Error。您可以使用“别名”执行此操作。 http://x-stream.github.io/alias-tutorial.html
  2. List通常不以这种方式表示,通常是嵌套的。将您的Error对象序列化为XML,以查看它通常表示为什么。如果你想这样做,你可能需要一个转换器:http://x-stream.github.io/converter-tutorial.html
  3. 您还可以通过注册错误和文本元素来使用隐式集合。 http://x-stream.github.io/javadoc/com/thoughtworks/xstream/XStream.html#addImplicitCollection(java.lang.Class,java.lang.String,java.lang.Class)

答案 1 :(得分:-1)

使用代码:

    String response = "<\patron_tenders><\patron_tender name=\"alpha\" city=\"mumbai\" >"
+ "<\partial_card_number>************6319<\partial_card_number>"
+ "<\zip_code>123456<\zip_code>"
+ "<\tender_type_name>Visa<\tender_type_name>"
+ "<\token_id>80195<\token_id>" + "<\expired>false<\expired>"
+ "<\patron_tender>"+"<\patron_tender name=\"beta\" city=\"pune\" >"
+ "<\partial_card_number>************3545<\partial_card_number>"
+ "<\zip_code>565768<\zip_code>"
+ "<\tender_type_name>Visa2<\tender_type_name>"
+ "<\token_id>83397<\token_id>" + "<\expired>true<\expired>"
+ "<\patron_tender><\patron_tenders>";