30/09/2018, 18:19

Cho mình hỏi về parse xml trong java

có 1 file xml , mình muốn đọc file xml đó rồi chuyển nội dung của nó vào 1 cái arraylist , sau đó dùng arraylist đó đổ dữ liệu vào 1 jtable . tìm trên mạng có đoạn code vd nhưng mình ko biết làm sao để đổ dữ liệu vào arraylist:

one.xml

 <StudentList> 
<student studentId="s01" gender="male"> 
    <name>Nguyen quan tuyen</name> 
    <age>25</age> 
</student> 
<student studentId="s02" gender="female"> 
    <name>Nguyen Thi Hoa</name> 
    <age>30</age> 
</student> 
<student studentId="s03" gender="female"> 
    <name>Nguyen Thi Hoa Huong</name> 
    <age>35</age> 
</student> 

class product:

 public class Product {
private String name;
private String age;}

class saxprocess : xu li xml

public class saxprocess extends DefaultHandler {

boolean ageFound;
boolean nameFound;
Product p= new Product();
public ArrayList<Product> array = new ArrayList<Product>();

//@Override
public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
    if (qName.equals("name")) {
        nameFound = true;
    }
    if (qName.equals("age")) {
        ageFound = true;
    }
}

//@Override
public void characters(char[] ch, int start, int length) throws SAXException {
    
    
    String str = new String(ch, start, length);
    str = str.trim();
    if (nameFound) {
        System.out.println("	 Name:" + str);
        nameFound = false;//ket thuc mot element; 
    }
    if (ageFound) 
        System.out.println("	 Age:" + str);
        ageFound = false;
    }
    }

class run:

 public class test  { 
public static void main(String[] args) throws IOException 
{ 
    
    saxprocess sax=new saxprocess();//tao mot doi tuong cua saxprocess. 
    String path="src\lab1\one.xml"; 
    SAXParserFactory saxpaser=SAXParserFactory.newInstance(); 
    try { 
        SAXParser parser = saxpaser.newSAXParser(); 
        File F=new File(path); 
        parser.parse(F, sax); 
    } catch (ParserConfigurationException ex) { 
        Logger.getLogger(test.class.getName()).log(Level.SEVERE, null, ex); 
    } catch (SAXException ex) { 
        Logger.getLogger(test.class.getName()).log(Level.SEVERE, null, ex); 
    }  
}  }

mình muốn set name với age vào product p , sau đó add từng p vào arraylist , mà cho mình hỏi hàm startelement() và characters() nó tự chạy hay sao mà ko thấy gọi , và mấy cái tham số đầu vào nó có ý nghĩ gì vậy

vũ xuân quân viết 20:30 ngày 30/09/2018

mình nghĩ hướng giải quyết của bạn hiện tại đang bị sai.
Bạn có thể coi link dưới.
http://www.mkyong.com/java/how-to-read-xml-file-in-java-dom-parser/

Reoteu Ray viết 20:31 ngày 30/09/2018

okê làm được hết rồi…

Bài liên quan
0