import java.util.ArrayList; import java.util.List; import java.util.StringTokenizer; import com.thoughtworks.xstream.XStream; import com.thoughtworks.xstream.io.xml.DomDriver; public class SequenceTest { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub /* SequenceStrings sequence = new SequenceStrings(); sequence.addStrings("gustavo"); sequence.addStrings("silvia"); XStream xstream = new XStream(); xstream.addImplicitCollection(SequenceStrings.class, "strings"); xstream.alias("sequence", SequenceStrings.class); */ SequenceReference sequence = new SequenceReference(); ObjectXmlReference xml_1 = new ObjectXmlReference("bla", "localhost", "12"); ObjectXmlReference xml_2 = new ObjectXmlReference("ble", "localhost", "1222"); //sequence.addString("gustavo"); sequence.addReference(xml_1); //sequence.addString("silvia"); sequence.addReference(xml_2); XStream xstream = new XStream(); xstream.addImplicitCollection(SequenceReference.class, "reference"); //xstream.addImplicitCollection(SequenceReference.class, "strings"); xstream.alias("sequence", SequenceReference.class); xstream.alias("reference", ObjectXmlReference.class); String xml_sequence = xstream.toXML(sequence); System.out.println(xml_sequence); ///////////////////// //Leitura do xml String field_name = "reference"; StringBuffer new_buff = new StringBuffer(); StringTokenizer st = new StringTokenizer(xml_sequence,"\n"); int count_tokens = st.countTokens(); echo("tokens count: "+st.countTokens()); List fields = new ArrayList(); String linha =""; boolean found = false; while (st.hasMoreTokens()) { while (st.hasMoreTokens()) { linha = st.nextToken(); if (linha.trim().equals("<"+field_name+">")) { found = true; break; } } if (found) { new_buff.append(linha+"\n"); while (st.hasMoreTokens()) { linha = st.nextToken(); if (linha.trim().equals("</"+field_name+">")) { new_buff.append(linha); fields.add(new_buff.toString()); new_buff.delete(0, new_buff.length()); found = false; break; } new_buff.append(linha+"\n"); } } } for (int i=0; i < fields.size(); i++){ echo("-------------------------"); echo((String) fields.get(i)); } } public static void echo(String msg) { System.out.println(msg); } }