4

我有一个 xml 文件,我从我的班级中读取它

<Testclasses>
<Class>new SomeClass1()</class>
<class>new SomeClass2()</class>
</Testclasses>

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

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){
   .....
}

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

4

2 回答 2

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

请看一下它的两分钟教程

于 2012-12-05T19:59:11.263 回答
3

它就像我想象的那样

DocumentBuilder db = dbf.newDocumentBuilder();
org.w3c.dom.Document doc = db.parse("name_of_file.xml");

Element rootElement = doc.getDocumentElement();
NodeList nl=rootElement.getElementsByTagName("TestClass");          
于 2012-12-05T20:08:55.240 回答