在读取xml文件时以对象形式获取数据

时间:2012-05-24 07:05:25

标签: java

编写以下代码以从xml文件中获取数据。我认为它确实以对象形式获取。那是为什么?

package newpackage;

import java.io.File;
import java.util.Iterator;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import java.util.LinkedList;

public class xmlParser {


private DocumentBuilder db;
private DocumentBuilderFactory dbf;
private Document dom;
private LinkedList list = new LinkedList();

public static void main(String args[]) {
    xmlParser o = new xmlParser();
    o.parseXML();
    o.parseDocument();
    o.print();
}

public void parseXML() { // getting a document builder
    try {
        dbf = DocumentBuilderFactory.newInstance();
        db = dbf.newDocumentBuilder();
        dom = db.parse(new File("Details.xml"));
    } catch(Exception exc) {
        exc.printStackTrace();
    }
}

public void parseDocument() { // get a list of student elements
    Element docEle = dom.getDocumentElement();
    NodeList nl = docEle.getElementsByTagName("Details");
    if(nl != null && nl.getLength() > 0) {
        for(int i=0;i<nl.getLength();i++) {
            Element el = (Element)nl.item(i);
           Details details = new Details();
           details = details.getDetail(el);
           list.add(details);
        }
    }
}

public void print() {
 //        list.iterator();
 //        while(!list.isEmpty()) {
 //            System.out.println(list.pop().toString());
 //        }

      Iterator it = list.iterator();
      while(it.hasNext()) {
          System.out.println(it.next().toString());
      }

  }    
}

输出:

newpackage.Details@1ac3c08
newpackage.Details@9971ad
newpackage.Details@1f630dc
newpackage.Details@1c5c1

为什么即使在应用toString后,我也会在对象表单中获得输出?

2 个答案:

答案 0 :(得分:1)

当你想要可读输出时,你必须覆盖newpackage.Details类中的toString()方法;)

答案 1 :(得分:0)

  

为什么即使在应用toString后我也会以对象形式获得输出?

因为您没有覆盖toString()

Details方法