如何在不知道Object通过XStream库的结构的情况下将XML转换为Java Object

时间:2014-12-17 13:13:46

标签: java xml xstream

如果我们知道对象的结构,在“useAttributeFor”方法和别名的帮助下,我们可以映射相同的标记名称和类变量。但我的要求是在不知道对象结构的情况下将xml文件转换为对象。例如,我们有一个xml文件test.xml,其地址为:

<test>
     <Name>John</Name>
     <age>18</age>
</test>

现在我需要将此xml文件转换为对象。 我的Java类将如下:

 public class Test
 {
    private String Name;
    private int age;
    public void setName(String Name,int age)
    {
       this.Name = Name;
       this.age = age;
    }
    public void display()
    {
       System.out.println("Name: "+Name);
       System.out.println("Age: "+age);
    }
 }

我是新手,所以请帮助我,并提前感谢你们

1 个答案:

答案 0 :(得分:3)

假设您需要从xml文件加载配置。

<test>
     <name>John</name>
     <age>18</age>
</test>

您想将其加载到Configuration对象中:

public class Test
 {
    private String name;
    private int age;
    public void setName(String name,int age)
    {
       this.name = name;
       this.age = age;
    }
    public void display()
    {
       System.out.println("Name: "+name);
       System.out.println("Age: "+age);
    }
 }
你必须做的是:

    FileReader fileReader = new FileReader("test.xml");  // load your xml file 
    XStream xstream = new XStream();     // init XStream
    // define root alias so XStream knows which element and which class are equivalent
    xstream.alias("test", Test.class);   
    Test test = (Test) xstream.fromXML(fileReader);`

就是这样!