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



如果我们知道对象的结构,借助"useAttributeFor"方法和别名,我们可以映射相同的标签名称和类变量。但我的要求是在不知道对象结构的情况下将 xml 文件转换为对象。例如,我们有一个 xml 文件测试.xml其中 contect 为:

<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);
    }
 }

我是新手,所以请帮助我,提前感谢大家

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

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

并且您想将其加载到配置对象中:

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);`

就这样!

相关内容

最新更新