XML解析和反序列化

我有一个xml文件,我从我的class级读它

 new SomeClass1() new SomeClass2()  

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

 public List retriveValuesFromXml(){ .... This method parses the values from xml and reads the different object and returns a list of objects. } @Test public void someMethod1(){ ArrayList 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){ ..... } 

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

您可能希望使用简单的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); 

请看看它的两分钟教程

它就像我想象的那样

 DocumentBuilder db = dbf.newDocumentBuilder(); org.w3c.dom.Document doc = db.parse("name_of_file.xml"); Element rootElement = doc.getDocumentElement(); NodeList nl=rootElement.getElementsByTagName("TestClass");