2012-01-06 18 views
5

tengo un código xml, y quiero analizar esto en el objeto java, por favor, ayúdenme.Cómo analizar XML a un objeto Java usando XStream

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

objeto Java es

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

Creo xstream está en su mejor cuando se define un objeto primero y luego permite que el XML a seguir a lo largo. –

Respuesta

5

Me asignar manualmente personalmente, o usar JAX-B tal vez, pero si realmente desea utilizar xstream:

  1. que necesitará mapear la clase Error al elemento Error. Puedes hacer esto con un "alias". http://x-stream.github.io/alias-tutorial.html
  2. La lista generalmente no se representa de esa manera, normalmente estaría anidada. Serializar su objeto de error a XML para ver lo que normalmente se representaría como. Si desea hacerlo de esta manera, es probable que necesite un convertidor: http://x-stream.github.io/converter-tutorial.html
  3. También puede usar colecciones implícitas, registrando el elemento Error y texto. http://x-stream.github.io/javadoc/com/thoughtworks/xstream/XStream.html#addImplicitCollection(java.lang.Class, java.lang.String, java.lang.Class)
+0

Creo que puede usar colecciones implícitas en lugar de un convertidor – BeRecursive

+0

¿hay alguna forma de analizar ese xml que otro convertidor? –

+0

¿Cómo usar esas colecciones implícitas? –

-1

utilice el código:

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

Por lo general, hay alguna correlación entre pregunta y respuesta, pero para esta respuesta: no tanto. –

Cuestiones relacionadas