我正在读取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;
}
}
答案 0 :(得分:1)
而不是将其打印到控制台
System.out.println("This is: " + adpElement.getTextContent());
将其添加到List并返回而不是
return null;