如何将XML文件中的值放入java中另一个类的数组列表中?

时间:2014-02-06 11:47:11

标签: java xml class

我正在读取XML文件,并尝试使用Java在另一个类中返回值。在XML Reader中,我读入了XML文件中的值。我不太清楚如何做到这一点。任何帮助将不胜感激。

public class XMLReader {

    public static List<String> load()
    {

        try{

            DocumentBuilderFactory docBuilderFactory =                DocumentBuilderFactory.newInstance();
            DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();
            Document doc = docBuilder.parse (new File("C:/adapters.xml"));
            doc.normalize();

            NodeList rootNodes = doc.getElementsByTagName("adapters");
            Node rootNode = rootNodes.item(0);
            Element rootElement = (Element) rootNode;
            NodeList adaptersList = rootElement.getElementsByTagName("class");

            for(int i=0; i<adaptersList.getLength(); i++){
                Node theAdapter = adaptersList.item(i);
                Element adpElement = (Element) theAdapter;

                System.out.println("This is: " + adpElement.getTextContent());
            }

        }catch(ParserConfigurationException e){
            e.printStackTrace();
        } catch (SAXException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        return null;
    }
}


public class AdapterLoader {

    public static List<AbstractAdapter> loadAllAdapters()
    {
        List<AbstractAdapter> allAdapters = new ArrayList<AbstractAdapter>();

        List<String> adapterClasses = XMLReader.load();

        for (String className : adapterClasses)
        {
            try {
                Class adapters = Class.forName(className);
                AbstractAdapter adp = (AbstractAdapter) adapters.newInstance();
                allAdapters.add(adp);
            } catch (ClassNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IllegalAccessException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (InstantiationException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }

        return allAdapters;
    }
}

1 个答案:

答案 0 :(得分:1)

而不是将其打印到控制台

System.out.println("This is: " + adpElement.getTextContent());

将其添加到List并返回而不是

return null;