解决方案 »

  1.   

    我都是用xstream 转换 ,需要的话可以给你个例子。
      

  2.   

    我没用过castor xml。
    不过看到错误提示,说明肯定是配置文件的问题。
    rg.xml.sax.SAXException: Illegal Text data found as child of: objects
    我猜<objects>节点下面是不是还要有子节点。
      

  3.   

    用xstream的话,好像要自己实现converter的。
      

  4.   

    import java.io.File;
    import java.io.FileInputStream;
    import java.util.ArrayList;
    import java.util.List;import org.apache.commons.io.FileUtils;import com.cmmb.compress.ZipUtils;
    import com.thoughtworks.xstream.XStream;
    public class XmlStream {
    public static void main(String[] args) {
    Person person=new Person("马","10.13",26);
    Person person1=new Person("马","10.13",26);
    List l=new ArrayList();
    l.add(person);
    l.add(person1);
    Persons p=new Persons("dddd",l);
    try {
    XStream s=new XStream();
    s.alias("Persons", Persons.class);
    s.alias("Person", Person.class);
    //s.addImplicitCollection(Persons.class,"perList");
    //s.useAttributeFor(Person.class,"name");
    //String xml=s.toXML(p);
    File f=new File("c:/ddd.xml");

    FileInputStream in=new FileInputStream(f);
    Persons pp=(Persons)s.fromXML(in);
    System.out.println(pp.getNumber());
    String str =((Person)pp.getPerList().get(1)).getName();
    System.out.println(str);
    byte[] bytes=str.getBytes();
    String res="";
    if(ZipUtils.isUtf8(bytes)){
    String tmpISO=new String(bytes,"ISO-8859-1");
    res = new String(str.getBytes("ISO-8859-1"),"UTF-8");
    System.out.println(1);
    }else{
    String tmpISO=new String(bytes,"ISO-8859-1");
    res = new String(str.getBytes("GB2312"),"UTF-8");
    System.out.println(2);
    }
    System.out.println(res);
    // File f=new File("c:/ddd.xml");
    // if(!f.exists()){
    // f.createNewFile();
    // }else{
    //
    // //FileUtils.deleteDirectory(f); 
    //
    // }
    // FileOutputStream out=new FileOutputStream(f);
    // out.write(xml.getBytes());
    // out.close();
    } catch (Exception e) {
    e.printStackTrace();
    System.out.println(e.getMessage());
    }

    }
    }
      

  5.   

    只需要自己写类就成了 ,很方便 ,他利用的dom解析的 ,文件大的时候性能会不怎么好,小文件还是可以的。
      

  6.   

    没有试,最后还是用Log4j解析了