XML解析和反序列化

ius*_*ser 4 java xml xml-deserialization xml-parsing

我有一个xml文件,我从我的课堂上读它

<Testclasses>
<Class>new SomeClass1()</class>
<class>new SomeClass2()</class>
</Testclasses>
Run Code Online (Sandbox Code Playgroud)

所以我在类中有一个方法,它将一个参数作为一个对象,如下所示

public List<Object> retriveValuesFromXml(){
    ....
    This method parses the values from xml and reads the different object and returns a
    list of objects.
}

@Test
public void someMethod1(){

   ArrayList<Object> list_of_objects= retriveValuesFromXml();

   for(Object x :list_of_objects){
      someMethod2(x); //for example : x = new SomeClass1() or x = new SomeClass2()
   }
}

public void someMethod2(Object target){
   .....
}
Run Code Online (Sandbox Code Playgroud)

其中target是创建的新SomeClass()对象,我们正在从xml中读取它.我可以知道如何将文件中的xml值解析为对象并将其存储在列表中吗?我只想使用项目中所有类对象的列表并将它们发送到此测试类.以后,即使任何新类添加到项目中,我也应该能够添加到此xml文件并将类对象传递给此测试.

Yog*_*ngh 6

您可能希望使用简单的Java库,例如XStream,它非常易于使用.您只需要定义一个POJO类来保存XML中的解析值,然后使用该库来解析XML并为您生成转换后的java对象.

     XStream xstream = new XStream();

     //converting object to XML
     String xml = xstream.toXML(myObject);

     //converting xml to object
     MyClass myObject = (MyClass)xstream.fromXML(xml);
Run Code Online (Sandbox Code Playgroud)

请看看它的两分钟教程.