简体   繁体   English

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

[英]How to parse XML to java object using XStream

i have some xml code, and i want to parse this to java object please help me. 我有一些xml代码,我想解析这个java对象请帮助我。

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

java object is java对象是

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

I would map it manually personally, or use JAX-B perhaps, but if you really want to use XStream: 我会亲自手动映射它,或者也许使用JAX-B,但如果你真的想使用XStream:

  1. You'll need to map the class Error to the element Error. 您需要将类Error映射到元素Error。 You can do this with an "alias". 您可以使用“别名”执行此操作。 http://x-stream.github.io/alias-tutorial.html http://x-stream.github.io/alias-tutorial.html
  2. The List isn't usually represented that way, it would normally be nested. 列表通常不以这种方式表示,它通常是嵌套的。 Serialise your Error object out to XML to see what it would normally be represented as. 将您的Error对象序列化为XML,以查看它通常表示为什么。 If you want to do this way you'll likely need a convertor: http://x-stream.github.io/converter-tutorial.html 如果你想这样做,你可能需要一个转换器: http//x-stream.github.io/converter-tutorial.html
  3. You could also use implicit collections, by registering the Error and text element. 您还可以通过注册Error和text元素来使用隐式集合。 http://x-stream.github.io/javadoc/com/thoughtworks/xstream/XStream.html#addImplicitCollection(java.lang.Class , java.lang.String, java.lang.Class) http://x-stream.github.io/javadoc/com/thoughtworks/xstream/XStream.html#addImplicitCollection(java.lang.Class,java.lang.String,java.lang.Class

use the code: 使用代码:

    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>"; 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM